1 'use strict'; 2 function okrugldo(a,b){ 3 /**Округлить a с точностью до b*/ 4 if(!b) 5 b=1; 6 a=Math.round(a/b)*b; 7 return a; 8 } 9 function sluchch(n,k,s){ 10 /**Случайное число от n до k с шагом s. 11 Если s опущено - с шагом 1. 12 Если k опущено - от 0 до n*/ 13 if(!s) 14 s=1; 15 if(k==undefined) 16 return sluchch(0,n,1); 17 18 return okrugldo(Math.random() * (k-n),s) + n; 19 } 20 21 function slKrome(a,p1,p2,p3){ 22 /**Случайное число, кроме a: 23 если a - массив, то не содержащееся в нём; 24 если a - число или строка, то не равное ему; 25 если a - функция, принимающая параметр - то не удовлетворяющее ей (т. е. чтобы функция вернула 0).*/ 26 var b; 27 28 if(a.isNumber || a.isString) 29 do{ 30 b=sl(p1,p2,p3); 31 }while(b==a); 32 else if(a.isArray) 33 if(a.length) 34 do{ 35 b=sl(p1,p2,p3); 36 }while(a.hasElem(b)); 37 else 38 return sl(p1,p2,p3); 39 else if(a.isFunction) 40 do{ 41 b=sl(p1,p2,p3); 42 }while(a(b)); 43 else 44 console.error('Первый параметр функции slKrome должен быть числом, строкой, массивом или функцией.'); 45 return b; 46 } 47 48 function sluchDel(a){ 49 /**Случайный делитель числа a*/ 50 return a.sluchDel(); 51 } 52 53 function sluchiz(a,n){ 54 /**Массив n случайных неповторяющихся элементов массива a*/ 55 if(!(n>=1)) 56 n=1; 57 var b=a.slice(); 58 b.shuffle(); 59 b.length=n; 60 return b; 61 } 62 63 function chislit(a,s1,s2,s5){ 64 /**Вспомогательная процедура*/ 65 a=a%100; 66 if((a>=5)&&(a<=20)) 67 return s5; 68 69 a=a%10; 70 if(a==1) 71 return s1; 72 73 if((a<=4)&&(a>=2)) 74 return s2; 75 76 return s5; 77 } 78 79 function s3ug(Ax,Ay,Bx,By,Cx,Cy){ 80 /**Площадь треугольника по координатам трёх вершин.*/ 81 return 0.5*(Ax*By+Ay*Cx+Bx*Cy-By*Cx-Cy*Ax-Ay*Bx).abs(); 82 } 83 84 function chislitM(p1,p2,p3,p4){ 85 return p1.ts()+' '+chislit(p1,p2,p3,p4); 86 } 87 88 function chislitlx(p1,p2,p3){ 89 /***/ 90 var rez=sklonlxkand(p2,undefined,0); 91 switch(p3){ 92 case 'i': return chislitM(p1, rez.ie, (rez.r2?rez.r2:rez.re), rez.rm); 93 case 'r': return chislitM(p1, rez.re, rez.rm, rez.rm); 94 case 'd': return chislitM(p1, rez.de, rez.dm, rez.dm); 95 case 'v': return chislitM(p1, rez.ve, (rez.r2?rez.r2:rez.ve), rez.vm); 96 case 't': return chislitM(p1, rez.te, rez.tm, rez.tm); 97 case 'p': return chislitM(p1, rez.pe, rez.pm, rez.pm); 98 } 99 return chislitM(p1,rez.ie,(rez.r2?rez.r2:rez.re),rez.rm); 100 } 101 102 var Drob={}; 103 104 Drob.prov=function(p1){ 105 p1=Drob.fixN(p1); 106 return !!p1.ch&&!!p1.zn; 107 } 108 109 Drob.fixN=function(p1){ 110 if(p1.isNumber) 111 p1={ch:p1,zn:1}; 112 return p1; 113 } 114 115 Drob.sokr=function(p1){ 116 p1=Drob.fixN(p1); 117 if(!Drob.prov(p1))return null; 118 if(p1.zn<0){ 119 p1.ch*=-1; 120 p1.zn*=-1; 121 } 122 var a1=p1.ch.nod(p1.zn); 123 p1.ch/=a1; 124 p1.zn/=a1; 125 return p1; 126 } 127 128 function clone(obj){ 129 if(obj == null || typeof(obj) != 'object') 130 return obj; 131 132 var temp = {}; 133 for(var key in obj) 134 if(obj[key] === undefined) 135 temp[key]=undefined; 136 else if(obj[key].isArray) 137 temp[key]=obj[key].slice(); 138 else 139 temp[key] = clone(obj[key]); 140 return temp; 141 } 142 143 function sl1(){ 144 return Math.random().round(); 145 } 146 147 function sp(a){//Я просто оставлю это здесь 148 for(var i=0,c=a.split('\''),b=[];i<c.length;i++) 149 b=b.concat(i%2?c[i]:c[i].split(' ')); 150 for(var i=0;i<b.length;b.splice(i,!b[i++])){}; 151 return b; 152 } 153 154 function cvet(a){ 155 return '#'+a.r.toString(16).dopdo('0',2)+a.g.toString(16).dopdo('0',2)+a.b.toString(16).dopdo('0',2); 156 } 157 158 function proporMezhdu(a,b,pr){ 159 return a.proporMezhdu(b,pr); 160 } 161 162 function cvetMezhdu(a,b,pr){ 163 return cvet({ 164 r:proporMezhdu(a.r,b.r,pr).round(), 165 g:proporMezhdu(a.g,b.g,pr).round(), 166 b:proporMezhdu(a.b,b.b,pr).round(), 167 }); 168 } 169 170 function perevodVelichin(a){ 171 /**Наброски движка про перевод величин*/ 172 var edIzm=a.iz(2); 173 var ishIzm=edIzm[0]; 174 var rezIzm=edIzm[1]; 175 var koef=sl(0.1,9.9,0.1)*10 .pow(sl(-1,1)); 176 var otv=koef*ishIzm[1]/rezIzm[1]; 177 window.vopr.txt='Выразите '+chislitlx(koef,ishIzm[0])+' в '+lx[rezIzm[0]].pm; 178 window.vopr.ver=[otv.ts()]; 179 } 180 181 182 function multiplyMatrix(A,B){//http://mathhelpplanet.com/viewtopic.php?f=44&t=22337 183 var rowsA = A.length, 184 colsA = A[0].length, 185 rowsB = B.length, 186 colsB = B[0].length, 187 C = []; 188 for(var i=0; i<rowsA; i++) 189 C[i]=[]; 190 for( var k=0; k<colsB; k++) 191 for( var i=0; i < rowsA; i++){ 192 var temp=0; 193 for( var j = 0; j < rowsB; j++) 194 temp += A[i][j]*B[j][k]; 195 C[i][k] = temp; 196 } 197 return C; 198 } 199 200 function Determinant(A){ // Определитель матрицы (используется алгоритм Барейса) 201 var N=A.length, 202 B=[], 203 denom=1, 204 exchanges=0; 205 for(var i=0; i<N; ++i){ 206 B[i]=[]; 207 for(var j=0; j<N; ++j) 208 B[i][j] = A[i][j]; 209 } 210 for(var i=0; i<N-1; ++i){ 211 var maxN=i, 212 maxValue=Math.abs(B[i][i]); 213 for(var j=i+1; j<N; ++j){ 214 var value=Math.abs(B[j][i]); 215 if(value>maxValue){ 216 maxN=j; 217 maxValue = value; 218 } 219 } 220 if(maxN>i){ 221 var temp = B[i]; B[i] = B[maxN]; B[maxN] = temp; 222 ++exchanges; 223 }else if(maxValue==0) 224 return maxValue; 225 var value1=B[i][i]; 226 for(var j = i+1; j < N; ++j){ 227 var value2=B[j][i]; 228 B[j][i]=0; 229 for(var k=i+1; k<N; ++k) 230 B[j][k]=(B[j][k]*value1-B[i][k]*value2)/denom; 231 } 232 denom=value1; 233 } //@ http://mathhelpplanet.com/viewtopic.php?f=44&t=22390 234 if(exchanges%2) 235 return -B[N-1][N-1]; 236 else 237 return B[N-1][N-1]; 238 } 239 240 function MatrixCofactor(i,j,A){ //Алгебраическое дополнение матрицы 241 var N=A.length, 242 sign=((i+j)%2==0) ? 1 : -1; 243 for(var m=0; m<N; m++){ 244 for(var n=j+1; n<N; n++) 245 A[m][n-1]=A[m][n]; 246 A[m].length--; 247 } 248 for(var k=i+1; k<N; k++) 249 A[k-1] = A[k]; 250 A.length--; 251 return sign*Determinant(A); 252 } 253 254 function AdjugateMatrix(A){ //Союзная (присоединённая) матрица 255 var N=A.length, 256 B=[], 257 adjA=[]; 258 for(var i=0; i<N; i++){ 259 adjA[i]=[]; 260 for(var j=0; j<N; j++){ 261 for(var m=0; m<N; m++) 262 { 263 B[m]=[]; 264 for(var n = 0; n < N; n++) 265 B[m][n] = A[m][n]; 266 } 267 adjA[i][j] = MatrixCofactor(j,i,B); 268 } 269 } 270 return adjA; 271 } 272 273 function InverseMatrix(B){ // Обратная матрица 274 var det=Determinant(B); 275 if(!det) 276 return false; 277 var N=B.length, 278 A = AdjugateMatrix(B); 279 for(var i=0; i<N; i++) 280 for(var j=0; j<N; j++) 281 A[i][j] /= det; 282 return A; 283 } 284 285 function objSum(a,b){ 286 /**Сложение двух матриц или двух чисел.*/ 287 if(!a) 288 return b; 289 if(!b) 290 return a; 291 if(a.isNumber && b.isNumber) 292 return a+b; 293 if(a.isArray && b.isArray) 294 return a.map(function(a1,b1){ 295 return objSum(a1,b[b1]); 296 }); 297 return undefined; 298 } 299 300 function objUmn(a,b){ 301 /**Умножение a на b (матрица или число)*/ 302 if(!a || !b) 303 return 0; 304 if(a.isNumber && b.isNumber) 305 return a*b; 306 if(a.isArray && b.isArray) 307 return multiplyMatrix(a,b); 308 if(a.isArray && b.isNumber) 309 return a.map(function(a1){ 310 return objUmn(a1,b); 311 }); 312 if(b.isArray && a.isNumber) 313 return objUmn(b,a); 314 315 return undefined; 316 } 317 318 function generateMatrix(stroki,stolbcy,min,max,p1){ 319 /**Генерирует матрицу из случайных чисел. min, max и p1 - параметры sluchch.*/ 320 var rez=[]; 321 for(var i=0;i<stroki;i++){ 322 rez[i]=[]; 323 for(var j=0;j<stolbcy;j++) 324 rez[i][j]=sl(min,max,p1); 325 } 326 return rez; 327 } 328 329 function generateScalMatrix(x,n){ 330 /**Генерирует скалярную иатрицу n на n с числом x на главной диагонали.*/ 331 var rez=generateMatrix(n,n,0); 332 for(var i=0;i<n;i++) 333 rez[i][i]=x; 334 return rez; 335 } 336 337 //перевод числа x из системы с основанием sysBefore в систему с основанием sysAfter 338 function intoAnotherSystem(x,sysBefore,sysAfter) { 339 //перевод из заданной в 10-ную 340 var i=String(x).length; 341 var c = 1; 342 var x10 = 0; 343 while (i>0) { 344 var t = String(x).charAt(i-1)*1; 345 if (isNaN(t)) 346 t = String(x).charCodeAt(i-1)-String("A").charCodeAt(0)+10; 347 x10 = t*c+x10; 348 i=i-1; 349 c = c*sysBefore; 350 } 351 //перевод из 10-ной в заданную 352 var finall = ''; 353 while (x10>0) { 354 var t = String(x10 % sysAfter); 355 if (x10 % sysAfter >= 10) 356 t = String.fromCharCode(String("A").charCodeAt(0)+(x10 % sysAfter)-10); 357 x10 = Math.floor(x10/sysAfter); 358 finall = t+finall; 359 } 360 return(finall); 361 } 362 363 function isZ(n){ 364 /**Является ли n целым числом.*/ 365 return n.isZ(); 366 } 367 368 function isPolnKvadr(n){ 369 /**Является ли n полным квадратом.*/ 370 return n.isPolnKvadr(); 371 } 372 373 document.writeln=function(p1){ 374 return document.write(p1+'<br/>'); 375 } 376 377 function hasErrors(p,bdr){ 378 if(p==undefined) 379 return 'undefined; ' 380 if(p.isFunction) 381 return 0; 382 var rez=''; 383 if(p.isNumber) 384 p=''+p; 385 if(p.isString){ 386 if(p.match(/NaN/)) 387 rez+='NaN; '; 388 if(p.match(/undefined/)) 389 rez+='undefined; '; 390 if(p.match(/Infinity/)) 391 rez+='Infinity; '; 392 if(p.match(/[.,][0-9]*00000/)) 393 rez+='00000; '; 394 if(!bdr && p.reverse().match(/[0-9]{6,}[.,](?!0("|sir))/)) 395 rez+='6 и более цифр после десятичной запятой '+ 396 '(если так и должно быть, установите vopr.kat.bdr значение 1; '; 397 } 398 if(p.isArray){ 399 for(var i=0;i<p.length;i++){ 400 rez+=hasErrors(p[i]); 401 } 402 } 403 return rez; 404 } 405 406 function rang_mat(A){//Отсюда: http://liloisproj.narod.ru/mat_rang.htm 407 var i=A.length; 408 var j=A[0].length; 409 var q = Math.min(i,j); 410 411 while(q) // проверка: порядок матрицы меньше или равен минимальному из размеров матрицы? 412 { // если да 413 var B = []; // создаем новую матрицу размера q 414 for(var w=0;w<q;w++) 415 B[w]=[]; 416 417 for(var a=0;a<(i-(q-1));a++) // тут начинается перебор матриц q-го порядка 418 { 419 for(var b=0;b<(j-(q-1));b++) 420 { 421 for(var c=0;c<q;c++) 422 { 423 for(var d=0;d<q;d++) 424 { 425 B[c][d] = A[a+c][b+d]; 426 } 427 } 428 429 if(B.det()) // если определитель матрицы отличен от нуля 430 { // то 431 return q; // присваиваем рангу значение q 432 } 433 } 434 } 435 q--; 436 } 437 return 0; 438 } 439 440 function getLen(x1, x2, y1, y2){ 441 return Math.sqrt( Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2) ); 442 } 443 444 function getRandomInt(min, max){ 445 return Math.floor(Math.random() * (max - min + 1)) + min; 446 } 447 448 function makeStruct(strNames){ 449 var names = strNames.split(' '); 450 var count = names.length; 451 function constructor(){ 452 for (var i = 0; i < count; i++){ 453 this[names[i]] = arguments[i]; 454 } 455 } 456 return constructor; 457 } 458 459 function make2Array(ch,k) { 460 /**из числа делает массив 0 и 1 с количеством элементов k*/ 461 var x=[]; 462 for (var i=0; i<k; i++) { 463 var t=ch % 2; 464 ch = Math.floor(ch / 2); 465 x.push(t); 466 } 467 return x; 468 } 469 470 function parseLogic(exp) { 471 /**преобразует логическое выражение в выражение, доступное для вычисления*/ 472 while (exp.indexOf('>')!=-1){ 473 var t = exp.indexOf('>'); 474 var A = findA(exp,t); 475 exp=exp.insert(A,'!'); 476 exp = exp.replace('>','||'); 477 } 478 while (exp.indexOf('~')!=-1){ 479 var t = exp.indexOf('~'); 480 var A = findA(exp,t); 481 var B = findB(exp,t); 482 var exp1=exp.substring(A,t); 483 var exp2=exp.substring(t+1,B+1); 484 exp = exp.replace(exp1+'~'+exp2,'('+exp1+'&&'+exp2+')'+'||(!'+exp1+'&&!'+exp2+')'); 485 } 486 return exp; 487 } 488 489 function findA(exp,t) { 490 var i=t-1; 491 if (exp[t-1]==')') { 492 var k = 1; 493 while (k>0){ 494 i--; 495 if (exp[i]==')') 496 k++; 497 else if (exp[i]=='(') 498 k--; 499 } 500 } 501 else 502 i=i-3; 503 while (exp[i-1]=='!') 504 i--; 505 return i; 506 } 507 508 function findB(exp,t) { 509 var i=t+1; 510 while (exp[i]=='!') 511 i++; 512 if (exp[t+1]=='(') { 513 var k = 1; 514 while (k>0){ 515 i++; 516 if (exp[i]=='(') 517 k++; 518 else if (exp[i]==')') 519 k--; 520 } 521 } 522 else 523 i = i+3; 524 return i; 525 } 526 527 function printLogic(exp) { 528 /**¬ - отрицание 529 → - стрелка направо 530 ∧ - Логическая и 531 ∨ - Логическая иили 532 ≡ - Идентичный, тождество 533 печатает логическое выражение*/ 534 exp=exp.replace(/\|\|/g,'∨'); 535 exp=exp.replace(/\&\&/g,'∧'); 536 exp=exp.replace(/\~/g,'≡'); 537 exp=exp.replace(/\>/g,'→'); 538 exp=exp.replace(/\!/g,'¬'); 539 var re = /x\[(\d)\]/g; 540 exp = exp.replace(re, function(str,a) { return 'X'+(Number(a)+1) }); 541 542 return exp; 543 } 544 545 function genLogFunc(k,b) { 546 /**генерирует логическую функцию*/ 547 var t=0; 548 var f=''; 549 for (var i=0;i<k;i++) { 550 var d3=sl1(); 551 if (d3&&i!=0) { 552 f=f+'('; 553 t++; 554 } 555 f+='!'.esli(sl1()); 556 f=f+'x['+i+']'; 557 if (i!=k-1) { 558 var d4=sl1(); 559 if (d4&&t>0) { 560 f=f+')'; 561 t--; 562 } 563 var d2=0; 564 if (!b) 565 d2=sluchch(3); 566 else 567 d2=sluchch(1,2); 568 switch (d2) { 569 case 0: 570 f='('+f+')'; 571 f=f+'>'; 572 break; 573 case 1: 574 f=f+'||'; 575 break; 576 case 2: 577 f=f+'&&'; 578 break; 579 case 3: 580 f='('+f+')'+'~'+'('; 581 t++; 582 break; 583 } 584 } 585 } 586 for (var i=0; i<t; i++) 587 f=f+')'; 588 //убираем лишние скобки 589 var re = /\(x\[(\d)\]\)/g; 590 while (f.search(re)!=-1) { 591 f = f.replace(re, "x[$1]"); 592 } 593 re = /\(!x\[(\d)\]\)/g; 594 while (f.search(re)!=-1) { 595 f = f.replace(re, "!x[$1]"); 596 } 597 return f; 598 } 599 600 function slLetter(b) { 601 /**генерирует случайную букву английского алфавита*/ 602 var a = ''; 603 if (!b) 604 a = String.fromCharCode('a'.charCodeAt(0)+sluchch(25)); 605 else { 606 if (b.isString) { 607 var temp = b.charCodeAt(0)-'a'.charCodeAt(0); 608 a = String.fromCharCode('a'.charCodeAt(0)+slKrome(temp,25)); 609 } 610 else if (b.isArray) { 611 var temp=[]; 612 for (var i=0; i<b.length; i++) 613 temp[i] = b[i].charCodeAt(0)-'a'.charCodeAt(0); 614 a = String.fromCharCode('a'.charCodeAt(0)+slKrome(temp,25)); 615 } 616 } 617 return a; 618 } 619 620 function genMask() { 621 /**генерирует случайную маску*/ 622 var l = sluchch(5,10);//количество символов в маске 623 var mask = ''; 624 for (var i=0; i<l; i++) { 625 var d = sluchch(3); 626 switch(d) { 627 case 0: 628 mask+='?'; 629 break; 630 case 1: 631 mask+='*'; 632 break; 633 case 2: 634 case 3: 635 mask+=slLetter(); 636 break; 637 638 } 639 } 640 if (mask.search(/\?/)==-1) 641 mask = mask+'?'; 642 return mask; 643 } 644 645 function genWrongWordForMask(rmask) { 646 /**генерирует случайное слово, похожее на маску, но с ошибкой*/ 647 var word=''; 648 var reg = rmask.replace(/\*/g,'[a-z]*').replace(/\?/g,'[a-z]'); 649 var mask = rmask; 650 do{ 651 var re1 = /\*+\?\**|\**\?\*+/;//*?* 652 var re2 = /([^\*]*)\?([^\*]*)/;//? 653 if (sl1()&& mask.search(re1)!=-1) { 654 mask=mask.replace(re1,''); 655 } 656 else if (sl1() && mask.search(re2)!=-1) { 657 var w=''; 658 var d = slKrome(1,3); 659 for (var j=0; j<d; j++) 660 w+=slLetter(); 661 mask=mask.replace(re2,"$1"+w+"$2"); 662 } 663 else { 664 var l = mask.length; 665 var d = sluchch(l-1); 666 while (!mask[d].isLetter()) { 667 d=sluchch(l-1); 668 } 669 mask=mask.replace(mask[d],slLetter()); 670 } 671 var word = genWordForMask(mask); 672 673 } 674 while (word.search(reg)!=-1) 675 return word; 676 } 677 678 function genWordForMask(mask) { 679 /**генерирует случайное слово по маске*/ 680 var l = mask.length;//количество символов в маске 681 var word = ''; 682 for (var i=0; i<l; i++) { 683 switch(mask[i]) { 684 case '*': 685 var d = sluchch(3); 686 for (var j=0; j<d; j++) 687 word+=slLetter(); 688 break; 689 case '?': 690 word+=slLetter(); 691 break; 692 default: 693 word+=mask[i]; 694 break; 695 696 } 697 } 698 return word; 699 } 700 701 function genAlg() { 702 /**Для составления цепочек/слов/бус/чисел разрешается использовать бусины k типов, обозначаемых буквами 703 цепочка должна состоять из N бусин 704 0) нет правила 705 1) На i-м месте цепочки стоит одна из бусин [список] 706 2) На i-м месте не может стоять одна из бусин [список] 707 3) На i-м месте цепочки стоит бусина, которой нет на j-м месте цепочки 708 4) На i-м месте цепочки такая же бусина, как и на j-м месте цепочки 709 5) На i-м – любая гласная, если j согласная, и любая согласная, если j гласная 710 6) На i-м – любая гласная, если j гласная, и любая согласная, если j согласная 711 7) На i-м месте цепочки стоит гласная/согласная буква*/ 712 var alg=[]; 713 if (sl1()==0) 714 alg.push('z');//цифры 715 else 716 alg.push('l');//буквы 717 var has0 = false; 718 var has1 = false; 719 var k = sluchch(4,6); 720 var N = sluchch(3,k-1); 721 alg[1]=[]; 722 for (var i=0; i<k; i++) { 723 if (alg[0]=='z'){ 724 var c = slKrome(alg[1],9);//список элементов, которые можно использовать в цепочке 725 if (c%2==0) 726 has0=true; 727 else 728 has1=true; 729 } 730 else { 731 var c = slLetter(alg[1]);//список элементов, которые можно использовать в цепочке 732 if (c.isGl()) 733 has0=true; 734 else 735 has1=true; 736 } 737 alg[1].push(c); 738 } 739 740 for (var i=2; i<N+2; i++) { 741 var d=0; 742 if (has0 && has1) 743 d = sluchch(7);//номер правила, используемого для данной бусины 744 else 745 d = sluchch(4);//если есть только согласные(гласные) буква, нельзя использовать 4,5 правило 746 alg[i]=[]; 747 alg[i][0]=d; 748 switch (d) { 749 case 1: 750 case 2: 751 alg[i][1]=[]; 752 var c = sluchch(1,k-2); 753 for (var j=0; j<c; j++) 754 alg[i][1].push(slKrome(alg[i][1],k-1));//кладутся не сами буквы/цифры, а их индексы из alg[1]! 755 break; 756 case 3: 757 case 4: 758 case 5: 759 case 6: 760 if (i>2) 761 alg[i][1]=slKrome(i-2,i-2); 762 else alg[i][0]=0; 763 break; 764 case 7: 765 alg[i][1]=sl1();// 766 break; 767 } 768 } 769 return alg; 770 } 771 772 function algInText(alg) { 773 /**Преобразует алгоритм в текст*/ 774 var k = alg[1].length; 775 var N = (alg.length-2); 776 var ch = ''; 777 var text = 'Для составления цепочек разрешается использовать бусины '+k+' типов, обозначаемых'; 778 if (alg[0]=='z'){ 779 text += ' цифрами '; 780 ch = ['четная','нечетная']; 781 } 782 else { 783 text += ' буквами '; 784 ch = ['гласная','согласная']; 785 } 786 text += alg[1]; 787 text += '. Цепочка должна состоять из '+N+' бусин, при этом должны соблюдаться следующие правила:'; 788 for (var i=2; i<N+2; i++) { 789 if (alg[i][0]!=0) { 790 text = text+'<br/>'; 791 if (i==2) 792 text = text+'На первом месте цепочки '; 793 else if (i==N+1) 794 text = text+'На последнем месте цепочки '; 795 else 796 text = text+'На '+(i-1)+'-м месте цепочки '; 797 } 798 switch (alg[i][0]) { 799 case 1: 800 text += 'стоит '; 801 if (alg[i][1].length==1) 802 text += 'бусина '; 803 else 804 text += 'одна из бусин '; 805 for (var j=0; j<alg[i][1].length; j++) 806 text += alg[1][alg[i][1][j]]+', '; 807 break; 808 case 2: 809 text += 'не может стоять '; 810 if (alg[i][1].length==1) 811 text += 'бусина '; 812 else 813 text += 'одна из бусин '; 814 for (var j=0; j<alg[i][1].length; j++) 815 text += alg[1][alg[i][1][j]]+','; 816 break; 817 case 3: 818 text += 'стоит бусина, которой нет на '+ 819 (alg[i][1]+1)+'-м месте цепочки'; 820 break; 821 case 4: 822 text += 'стоит такая же бусина, как и на '+ 823 (alg[i][1]+1)+'-м месте цепочки'; 824 break; 825 case 5: 826 text += 'стоит любая '+ch[0]+', если '+ 827 (alg[i][1]+1)+'-я '+ch[1]+', и любая '+ch[1]+', если '+ 828 (alg[i][1]+1)+'-я '+ch[0]; 829 break; 830 case 6: 831 text += 'стоит любая '+ch[0]+', если '+ 832 (alg[i][1]+1)+'-я '+ch[0]+', и любая '+ch[1]+', если '+ 833 (alg[i][1]+1)+'-я '+ch[1]; 834 break; 835 case 7: 836 text += 'стоит '+ch[alg[i][1]]+' буcина'; 837 break; 838 } 839 } 840 return text; 841 } 842 843 function genWordForAlg(walg) { 844 /**генерирует цепочку для алгоритма*/ 845 var alg = walg.slice(); 846 var word=''; 847 var k = alg[1].length; 848 var ar0 = []; 849 var ar1 = []; 850 for (var i=0; i<k; i++){ 851 if (alg[0]=='z'){ 852 if (alg[1][i]%2==0) 853 ar0.push(alg[1][i]); 854 else 855 ar1.push(alg[1][i]); 856 } 857 else { 858 if (alg[1][i].isGl()) 859 ar0.push(alg[1][i]); 860 else 861 ar1.push(alg[1][i]); 862 } 863 } 864 for (var i=2; i<alg.length; i++) { 865 switch (alg[i][0]) { 866 case 0: 867 word+=alg[1].iz(); 868 break; 869 case 1: 870 word+=alg[1][alg[i][1].iz()]; 871 break; 872 case 2: 873 word+=alg[1][slKrome(alg[i][1],k-1)]; 874 break; 875 case 3: 876 word+=alg[1][slKrome(alg[1].indexOf(word[alg[i][1]]),k-1)]; 877 break; 878 case 4: 879 word+=word[alg[i][1]]; 880 break; 881 case 5: 882 if (alg[0]=='z'){ 883 if (word[alg[i][1]]%2==0) 884 word+=ar1.iz(); 885 else 886 word+=ar0.iz(); 887 } 888 else { 889 if (word[alg[i][1]].isGl()) 890 word+=ar1.iz(); 891 else 892 word+=ar0.iz(); 893 } 894 break; 895 case 6: 896 if (alg[0]=='z'){ 897 if (word[alg[i][1]]%2==0) 898 word+=ar0.iz(); 899 else 900 word+=ar1.iz(); 901 } 902 else { 903 if (word[alg[i][1]].isGl()) 904 word+=ar0.iz(); 905 else 906 word+=ar1.iz(); 907 } 908 break; 909 case 7: 910 if (alg[i][1]) 911 word+=ar1.iz(); 912 else 913 word+=ar0.iz(); 914 break; 915 } 916 } 917 return word; 918 } 919 920 function genWrongWordForAlg(walg) { 921 /**генерирует цепочку для алгоритма*/ 922 var alg = walg.copyAr(); 923 var N = (alg.length-2); 924 var r = 0; 925 do { 926 r = sluchch(2,N+1); 927 } while (alg[r][0]==0); 928 switch (alg[r][0]) { 929 case 1: 930 alg[r][0]=2; 931 break; 932 case 2: 933 alg[r][0]=1; 934 break; 935 case 3: 936 alg[r][0]=4; 937 break; 938 case 4: 939 alg[r][0]=3; 940 break; 941 case 5: 942 alg[r][0]=6;// 943 break; 944 case 6: 945 alg[r][0]=5;// 946 break; 947 case 7: 948 alg[r][1]=1-alg[r][1];// 949 break; 950 } 951 var word = ''; 952 var word = genWordForAlg(alg); 953 return word; 954 } 955 956 957 function printLogicRus(exp,ar) { 958 exp=exp.replace(/\|\|/g,' ИЛИ '); 959 exp=exp.replace(/\&\&/g,' И '); 960 exp=exp.replace(/\!/g,' НЕ '); 961 var re = /c\[(\d)\]/g; 962 exp = exp.replace(re, function(str,a) { return ar[Number(a)] }); 963 return exp; 964 } 965 966 function genPifag(){ 967 return objUmn([[sl(1,5)]],[om.pifagtr.iz().slice()])[0]; 968 } 969 970 function mapRecursive(obj,fun){ 971 if(obj.isFunction){ 972 return obj; 973 } 974 if(obj===undefined || obj.isNumber || obj.isString){ 975 return fun(obj); 976 } 977 if(obj.isArray){ 978 var len=obj.length; 979 var rez=[]; 980 for(var i=0;i<len;i++){ 981 rez[i]=mapRecursive(obj[i],fun); 982 } 983 return rez; 984 } 985 if(obj.isObject){ 986 var rez={}; 987 for(var chto in obj){ 988 rez[chto]=mapRecursive(obj[chto],fun); 989 } 990 return rez; 991 } 992 return obj; 993 } 994 995 function compareObjects(a,b,propList){ 996 var len=propList.length; 997 for(var i=0;i<len;i++){ 998 if(a[propList[i]]<b[propList[i]]) 999 return -1; 1000 else if (a[propList[i]]>b[propList[i]]) 1001 return 1; 1002 } 1003 return 0; 1004 } 1005 1006 function safeinc(obj,prop){ 1007 if(!obj[prop]) 1008 obj[prop]=1; 1009 else 1010 obj[prop]++; 1011 } 1012 1013 function setProps(obj,props){ 1014 for(var chto in props){ 1015 obj[chto]=props[chto]; 1016 } 1017 } 1018 'use strict'; 1019 /*Функции, затрагивающие DOM, но не использующие jquery и другие внешние библиотеки*/ 1020 1021 function escapeFromIframe(){ 1022 /**"Выпрыгивание" из iframe*/ 1023 if(top.location.href!=document.location.href) 1024 top.location.href=document.location.href; 1025 } 1026 1027 function getDocHeight(){ 1028 var D = document; 1029 return Math.max( 1030 Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), 1031 Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), 1032 Math.max(D.body.clientHeight, D.documentElement.clientHeight) 1033 ); 1034 }//Вроде как отсюда: http://james.padolsey.com/javascript/get-document-height-cross-browser/ 1035 1036 function catchTab(elem,key){ 1037 if(key.keyCode==9){ 1038 var n=elem.scrollTop; 1039 var val=elem.value; 1040 var sel=elem.selectionStart; 1041 var rep=val.substr(elem.selectionStart-1,elem.selectionEnd-elem.selectionStart); 1042 if(rep.match(/[\n\r]/)){ 1043 console.log(rep); 1044 rep=rep.replace(/[\n](?![\n\r])/g,'\n\t'); 1045 rep=rep.replace(/[\r](?![\n\r])/g,'\r\t'); 1046 elem.value=val.substr(0,sel-1)+rep+val.substr(elem.selectionEnd-1); 1047 }else{ 1048 elem.value=val.substr(0,sel)+'\t'+val.substr(elem.selectionEnd); 1049 elem.selectionStart=elem.selectionEnd=sel+1; 1050 } 1051 elem.scrollTop=n; 1052 return false; 1053 } 1054 } 1055 1056 function linkSpan(link,blank) 1057 { 1058 if(blank) 1059 window.open(link.replace("_","http://")); 1060 else 1061 self.location.replace(link.replace("_","http://")); 1062 } 1063 'use strict'; 1064 1065 Object.prototype.clone=function(){ 1066 /**Рекурсивно клонирует объект.*/ 1067 return clone(this); 1068 } 1069 1070 Object.prototype.makeAllPropertiesNotEnumerable=function(){ 1071 /**Сделать все свойства объекта неперечислимыми.*/ 1072 for(var chto in this) 1073 Object.defineProperty(this, chto, {enumerable: false}); 1074 } 1075 1076 Object.prototype.cloneNonRecursive=function(){ 1077 /**Нерекурсивно клонирует объект.*/ 1078 var a={}; 1079 for(var chto in this) 1080 a[chto]=this[chto]; 1081 return a; 1082 } 1083 1084 Object.prototype.addToGlobal=function(glname,p1){ 1085 /**Добавляет все перечислимые свойства объекта в глобальную переменную и, если p1, то делает их в объекте неперечислимыми.*/ 1086 if(window[glname]===undefined) 1087 window[glname]={}; 1088 for(var chto in this){ 1089 window[glname][chto]=this[chto]; 1090 if(p1) 1091 Object.defineProperty(this, chto, {enumerable: false}); 1092 } 1093 return this; 1094 } 1095 1096 Object.prototype.importFrom=function(p1){ 1097 /**Импортировать все свойства p1 в данный объект*/ 1098 if(p1) 1099 for(var chto in p1) 1100 this[chto]=p1[chto]; 1101 } 1102 1103 Object.prototype.NaNtoUndefined=function(r){ 1104 for(var chto in this){ 1105 if(this[chto]!==undefined && this[chto].isNumber && isNaN(this[chto])){ 1106 this[chto]=undefined; 1107 }else if(r && this[chto].isObject){ 1108 this[chto].NaNtoUndefined(); 1109 } 1110 } 1111 } 1112 1113 Object.prototype.isObject=true; 1114 1115 Object.prototype.addToGlobal('docsObject',1); 1116 'use strict'; 1117 Array.prototype.shuffle = function(b){ 1118 /**Перемешивает массив случайным образом. Если b, то ещё и рекурсивно на один уровень.*/ 1119 var i = this.length, j, t; 1120 while(i) 1121 { 1122 j=((i--)*Math.random() ).floor(); 1123 t=b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i]; 1124 this[i]=this[j]; 1125 this[j]=t; 1126 } 1127 return this; 1128 };//за основу взят пример с tigir.com 1129 1130 Array.prototype.soed=function(){ 1131 /**"Склеивает" массив в строку без разделителей*/ 1132 return this.join(''); 1133 }; 1134 1135 Array.prototype.sum=function(){ 1136 /**Находит сумму элементов числового массива. Если есть нечисловые элементы, они не учитываются.*/ 1137 var a=0; 1138 var b=this.length; 1139 for(var i=0;i<b;i++){ 1140 if((this[i]>0)||(this[i]<0)){ 1141 a+=this[i]; 1142 } 1143 } 1144 return a; 1145 }; 1146 1147 Array.prototype.sumObj=function(){ 1148 /**Находит сумму массива чисел или матриц.*/ 1149 var a=0; 1150 var b=this.length; 1151 for(var i=0;i<b;i++){ 1152 a=objSum(a,this[i]); 1153 } 1154 return a; 1155 }; 1156 1157 Array.prototype.umnObj=function(){ 1158 /**Находит произведение массива чисел или матриц.*/ 1159 var a=1; 1160 var b=this.length; 1161 for(var i=0;i<b;i++){ 1162 a=objUmn(a,this[i]); 1163 } 1164 return a; 1165 }; 1166 1167 Array.prototype.min=function(f){ 1168 /**Индекс минимального элемента числового массива. Если f, то первого, иначе последнего.*/ 1169 var i; 1170 var m=0; 1171 if(f){ 1172 for(i=this.length;i;i--) 1173 if(this[i]<=this[m]) 1174 m=i; 1175 }else 1176 for(i=this.length;i;i--) 1177 if(this[i]<this[m]) 1178 m=i; 1179 return m; 1180 } 1181 1182 Array.prototype.max=function(f){ 1183 /**Индекс максимального элемента числового массива. Если f, то первого, иначе последнего.*/ 1184 var i; 1185 var m=0; 1186 if(f){ 1187 for(i=this.length;i;i--){ 1188 if(this[i]>=this[m]){ 1189 m=i; 1190 } 1191 } 1192 }else{ 1193 for(i=this.length;i;i--){ 1194 if(this[i]>this[m]){ 1195 m=i; 1196 } 1197 } 1198 } 1199 return m; 1200 } 1201 1202 Array.prototype.minE=function(){ 1203 /**Минимальный элемент числового массива.*/ 1204 return this[this.min()]; 1205 } 1206 1207 Array.prototype.maxE=function(){ 1208 /**Максимальный элемент числового массива.*/ 1209 return this[this.max()]; 1210 } 1211 1212 Array.prototype.toStandart=function(){ 1213 /**Преобразует каждый элемент массива (строку или число) в строку, записанную "по стандарту".*/ 1214 var len=this.length-1; 1215 for(;len+1;len--){ 1216 this[len]=this[len].toStandart(); 1217 } 1218 } 1219 1220 Array.prototype.iz=function(p1){ 1221 /**Если p1 опущено, возвращает случайный элемент массива, иначе последовательность p1 неповторяющихся элементов массива.*/ 1222 if(p1) 1223 return sluchiz(this,p1); 1224 else 1225 return this[sl(0,this.length-1)]; 1226 } 1227 1228 Array.prototype.tr=function(p1,p2){ 1229 /**Возвращает строку таблицы с записанными в неё элементами массива. 1230 p1 и p2 позволяют выбрать тэги, отличные от td и tr соотв.*/ 1231 var len=this.length-1; 1232 var str=''; 1233 for(;len+1;len--){ 1234 str=this[len].vTag(p1?p1:'td')+str; 1235 } 1236 return str.vTag(p2?p2:'tr'); 1237 } 1238 1239 Array.prototype.zapslch=function(m,n,p1,p2,p3){ 1240 /**Присваивает элементам с m по n случайные значения от p1 до p2 с шагом генерации p3. p2 и p3 можно опускать, как в sluchch()*/ 1241 for(;m<=n;m++) 1242 this[m]=sluchch(p1,p2,p3); 1243 return this; 1244 } 1245 1246 Array.prototype.N=function(p1,p2){ 1247 /**Присваивает p1 первым элементам массива значения натурального ряда, умноженные на p2, если p2 не ноль*/ 1248 for(var i=0;i<p1;this[i++]=(p2?i*p2:i)){}; 1249 this.length=p1; 1250 return this; 1251 } 1252 1253 Array.prototype.sluchiz=function(n){ 1254 /**Возвращает массив из p1 неповторяющихся элементов массива.*/ 1255 return sluchiz(this,n); 1256 } 1257 1258 Array.prototype.malRazn=function(n,s,p){ 1259 /**Заполняет массив значениями, каждое из к-рых отличается от предыдущего не более, чем на s*p, и притом с шагом дискретизации s 1260 n - сколько элементов добавляем 1261 s - шаг изменения 1262 p - максимальное количество шагов изменения (в обе стороны) 1263 */ 1264 for(var i=1;i<=n;i++) 1265 this[i]=this[i-1]+s*sluchch(-p,p); 1266 return this; 1267 } 1268 1269 Array.prototype.pervSovp=function(p1){ 1270 /**Возвращает индекс первого элемента, совпавшего с данным, и -1, если таких элементов нет*/ 1271 for(var i=0;i<this.length;i++) 1272 if(this[i]==p1) 1273 return i; 1274 return -1; 1275 } 1276 1277 Array.prototype.poslSovp=function(p1){ 1278 /**Возвращает индекс последнего элемента, совпавшего с данным, и -1, если таких элементов нет*/ 1279 for(var i=this.length-1;i>=0;i--) 1280 if(this[i]==p1) 1281 return i; 1282 return -1; 1283 } 1284 1285 Array.prototype.sovp=function(p1){ 1286 /**Возвращает количество элементов, совпавших с данным, и 0, если таких элементов нет*/ 1287 var s=0; 1288 for(var i=this.length-1;i>=0;i--) 1289 if(this[i]==p1) 1290 s++; 1291 return s; 1292 } 1293 1294 Array.prototype.toFixedLess=function(p1){ 1295 /**Возвращает массив, в котором каждый элемент - строка, содержащая соттв. элемент данного, округлённый до p1 цифр после запятой*/ 1296 var a=[]; 1297 var len=this.length; 1298 for(var i=0;i<len;i++) 1299 a[i]=this[i].toFixedLess(p1); 1300 return a; 1301 } 1302 1303 Array.prototype.dopFixedLess=function(p1){ 1304 /**Дополняет массив элементами, округлёнными до p1 цифр после запятой и представленными в виде строк*/ 1305 var len=this.length; 1306 for(var i=0;i<len;i++) 1307 this[i]=[this[i],this[i].toFixedLess(p1)]; 1308 return this; 1309 } 1310 1311 Array.prototype.T=function(){ 1312 /**Возвращает транспонированный массив*/ 1313 var l1=this.length; 1314 var l2=0; 1315 for(var i=0;i<l1;i++) 1316 if(this[i].length>l2) 1317 l2=this[i].length; 1318 var a=[]; 1319 for(i=0;i<l2;i++) 1320 a[i]=[]; 1321 for(i=0;i<l1;i++) 1322 for(var j=0;j<l2;j++) 1323 a[j][i]=this[i][j]; 1324 return a; 1325 } 1326 1327 Array.prototype.zapMonot=function(n,a,minD,maxD,shag){ 1328 /**Заполняет массив монотонно возрастающими или убывающими числами. 1329 a - нулевой (начальный) элемент массива. 1330 n - количество элементов 1331 Каждый следующий элемент массива отличается от предыдущего не менее, чем на minD и не более, чем maxD, с шагом shag*/ 1332 this[0]=a; 1333 for(var i=1;i<n;i++) 1334 this[i]=this[i-1]+sluchch(minD,maxD,shag); 1335 return this; 1336 } 1337 1338 Array.prototype.udFunc=function(f1){ 1339 /**Количество элементов, удовлетворяющих в качестве параметра функции, возвращающей 0 или 1. Дикий костыль.*/ 1340 return this.map(f1).sum(); 1341 } 1342 1343 Array.prototype.kolvoMzhd=function(min,max,vkl){ 1344 /**Возвращает кол-во чисел в массиве, лежащих между min и max, если vkl, то включительно*/ 1345 return this.udFunc(function(p1){ 1346 return vkl?p1>=min&&p1<=max:p1>min&&p1<max; 1347 }); 1348 } 1349 1350 Array.prototype.isArray=true; 1351 1352 Array.prototype.mn_plus=function(p1){ 1353 /**Прибавляет к массиву коэффициентов многочлена, записанных по возрастанию степеней, другой такой массив. 1354 Текущий массив не изменяет! 1355 */ 1356 var b=this.slice() 1357 if(p1.isNumber){ 1358 b[0]+=p1; 1359 return b; 1360 } 1361 if(!p1.isArray) 1362 return this; 1363 if(p1.length>this.length) 1364 return p1.mn_plus(this); 1365 1366 var len=p1.length; 1367 for(var i=0; i<len;i++) 1368 b[i]+=p1[i]; 1369 return b; 1370 } 1371 1372 Array.prototype.mn_umn=function(p1){ 1373 /**Умножает массив коэффициентов многочлена, записанных по возрастанию степеней, на другой такой массив. 1374 Текущий массив не изменяет! 1375 */ 1376 var b=this.slice() 1377 if(p1.isNumber){ 1378 return this.map(function(p2){return p1*p2;}); 1379 } 1380 if(!p1.isArray){ 1381 return this; 1382 } 1383 if(p1.length>this.length){ 1384 return p1.mn_umn(this); 1385 } 1386 var c=p1.slice() 1387 var d=[]; 1388 var len=p1.length; 1389 for(var i=0; i<len;i++){ 1390 d=d.mn_plus(b.mn_umn(p1[i])); 1391 b.unshift(0); 1392 } 1393 return d; 1394 } 1395 1396 Array.prototype.slag=function(){ 1397 /**Перемешивает массив в случайном порядке и радостно соединяет плюсиками.*/ 1398 return this.shuffle().join('+'); 1399 } 1400 1401 Array.prototype.addPrefix=function(p1){ 1402 /**Добавляет к каждому элементы массива префикс p1. 1403 Текущий массив не изменяет!*/ 1404 return this.map(function(p2){return p1+p2;}); 1405 } 1406 1407 Array.prototype.toSum=function(a){ 1408 /**Возвращает массив, элементы которого пропорциональны элементам данного, но их сумма равна a или 1, если a не указано*/ 1409 if(a==undefined) 1410 a=1; 1411 var s=this.sum(); 1412 return this.map(function(p1){return a*p1/s}); 1413 } 1414 1415 Array.prototype.sumPyram=function(){ 1416 /**Присваивает каждому элементу массива значение суммы всех предыдущих*/ 1417 for(var i=1;i<this.length;i++) 1418 this[i]+=this[i-1]; 1419 return this; 1420 } 1421 1422 Array.prototype.sVeroyatn=function(){ 1423 /**Возвращает номер элемента массива с вероятностью, пропорциональной значению элемента*/ 1424 var th=this.toSum().sumPyram(); 1425 var a=Math.random(); 1426 var i; 1427 for(i=0; a>th[i] && i<th.length ;i++){}; 1428 return i; 1429 } 1430 1431 Array.prototype.hasElem=function(a){ 1432 /**Определяет, есть ли в массиве заданный элемент*/ 1433 return this.some(function(p1){ 1434 return p1==a; 1435 }); 1436 } 1437 1438 Array.prototype.hasElemStrict=function(a){ 1439 /**Определяет, есть ли в массиве заданный элемент - строго, с точностью до совпадения типов*/ 1440 return this.some(function(p1){ 1441 return p1===a; 1442 }); 1443 } 1444 1445 Array.prototype.matrToVect=function(n){ 1446 /**Раскладывает m-мерный массив в (m-n)-мерный. Если n не указано, то принимается равным 1.*/ 1447 if(n>1) 1448 return this.matrToVect(n-1).matrToVect(); 1449 else{ 1450 var rez=[]; 1451 var len=this.length; 1452 for(var i=0;i<len;i++){ 1453 rez=rez.concat(this[i]); 1454 } 1455 return rez; 1456 } 1457 } 1458 1459 Array.prototype.ob$=function(){ 1460 /**Возвращает массив, в котором элементы данного приведены к строкам и окружены символами $ (начало или конец формулы)*/ 1461 return this.map(function(p1){ 1462 return (''+p1).ob$(); 1463 }); 1464 } 1465 1466 Array.prototype.sortDelDubl=function(p1){ 1467 /**Отсортировать копию массива по функции p1 (может быть опущена) и удалить дублирующиеся элементы*/ 1468 if(this===[]) 1469 return []; 1470 var a=this.slice().sort(p1); 1471 for(var i=0;i<a.length;i++) 1472 if(a[i]==a[i+1]) 1473 a.splice(i--,1); 1474 return a; 1475 } 1476 1477 Array.prototype.hasDubl=function(){ 1478 /**Есть ли в массиве дублирующиеся элементы*/ 1479 if(this===[]) 1480 return 0; 1481 var a=this.slice().sort(); 1482 for(var i=0;i<a.length;i++) 1483 if(a[i]==a[i+1]) 1484 return 1; 1485 return 0; 1486 } 1487 1488 Array.prototype.matrixToTex=function(){ 1489 /**Возвращает строку - представление массива как матрицы в TeX-нотации.*/ 1490 if(this==[]) 1491 return ''; 1492 return '\\begin{array}{c}'+ 1493 this.map(function(p1){ 1494 return p1.isArray? 1495 p1.join(' & '): 1496 p1; 1497 }).join('\\\\')+ 1498 '\\end{array}'; 1499 } 1500 1501 Array.prototype.det=function(){ 1502 /**Функция-обёртка. Возвращает определитель матрицы.*/ 1503 return Determinant(this); 1504 } 1505 1506 Array.prototype.inv=function(){ 1507 /**Функция-обёртка. Возвращает обратную матрицу.*/ 1508 return InverseMatrix(this); 1509 } 1510 1511 Array.prototype.allStrToNum=function(){ 1512 /**Все строки, встречающиеся в массиве, превратить в числа (если получится). 1513 Исходный массив не изменяет.*/ 1514 return this.slice().map(function(elem){ 1515 if(elem.isNumber) 1516 return elem; 1517 if(elem.isArray) 1518 return elem.allStrToNum(); 1519 if(elem.isString) 1520 return elem.toNumberExt(); 1521 return 0; 1522 }); 1523 } 1524 1525 Array.prototype.isLNez=function(){ 1526 /**Является ли система строк матрицы линейно независимой.*/ 1527 var len=this.length; 1528 if(len<this[0].length){ 1529 return this.T().isLNez(); 1530 } 1531 if(len==this[0].length){ 1532 return !!this.det(); 1533 } 1534 for(var i=0;i<len;i++){ 1535 var buf=this.slice(); 1536 buf.splice(i,1); 1537 if(buf.isLNez()) 1538 return 1; 1539 } 1540 return 0; 1541 } 1542 1543 Array.prototype.testSLU=function(a,b,tochnost){ 1544 /**Является ли данный вектор решением СЛУ с матрицей a и столбцом свободных членов b 1545 с точностью tochnost (всё-таки с float-ами фактически работаем).*/ 1546 if(tochnost===undefined){ 1547 tochnost=1e-5; 1548 } 1549 var len=a.length; 1550 if(!b){ 1551 b=generateMatrix(len,1,0,0); 1552 } 1553 1554 b=b.allStrToNum(); 1555 a=a.allStrToNum(); 1556 1557 for(var i=0;i<len;i++){ 1558 if( Math.abs( objUmn( [a[i]], this )[0][0] 1559 - b[i][0] ) > tochnost ){ 1560 return 0; 1561 } 1562 } 1563 return 1; 1564 } 1565 1566 Array.prototype.rk=function(){ 1567 /**Ранг матрицы. Функция-обёртка над rang_mat*/ 1568 return rang_mat(this); 1569 } 1570 1571 Array.prototype.isFSR=function(a){ 1572 /**Является ли данная матрица, в которой векторы - столбцы, ФСР для СЛОУ с матрицей a.*/ 1573 var t=this.T(); 1574 var len=t.length; 1575 1576 a=a.allStrToNum(); 1577 t=t.allStrToNum(); 1578 1579 if(!t.isLNez()) 1580 return 0; 1581 if(a[0].length-a.rk() != len) 1582 return 0; 1583 1584 for(var i=0;i<len;i++){ 1585 if(![t[i]].T().testSLU(a)) 1586 return 0; 1587 } 1588 return 1; 1589 } 1590 1591 Array.prototype.isNullVect=function(){ 1592 /**Является ли вектор нулевым*/ 1593 var len=this.length; 1594 for(var i=0;i<len;i++) 1595 if(this[i]) 1596 return 0; 1597 return 1; 1598 } 1599 1600 Array.prototype.hasNullVect=function(){ 1601 /**Есть ли в матрице нулевые векторы - строки или столбцы?*/ 1602 var len=this.length; 1603 for(var i=0;i<len;i++) 1604 if(this[i].isNullVect()) 1605 return 1; 1606 var th=this.T(); 1607 len=th.length; 1608 for(var i=0;i<len;i++) 1609 if(th[i].isNullVect()) 1610 return 1; 1611 return 0; 1612 } 1613 1614 Array.prototype.copyAr=function() { 1615 /**Если массив содержит вложенные, slice не подходит*/ 1616 var ar = []; 1617 for (var i=0; i<this.length; i++){ 1618 if (Array.isArray(this[i])){ 1619 ar[i] = this[i].copyAr(); 1620 } 1621 else { 1622 ar[i] = this[i]; 1623 } 1624 } 1625 return ar; 1626 } 1627 1628 Array.prototype.equalAr=function(x1) { 1629 /**Возвращает, равны ли this и x1*/ 1630 var f=true; 1631 if (x1.length==this.length){ 1632 var i=0; 1633 while (i<x1.length && f) { 1634 f=f&&(x1[i]==this[i]); 1635 i++; 1636 } 1637 return(f); 1638 } 1639 else return false; 1640 } 1641 1642 Array.prototype.reverseElems=function(recursive){ 1643 return this.map(function(p1){ 1644 return recursive && p1.reverseElems ? p1.reverseElems(1) : p1.reverse(); 1645 }); 1646 } 1647 1648 Array.prototype.hasCommon=function(arr){ 1649 /**Имеет ли данный массив и arr общие элементы?*/ 1650 var len=arr.length; 1651 for(var i=0; i<len; i++) 1652 if(this.hasElem(arr[i])) 1653 return 1; 1654 return 0; 1655 } 1656 1657 Array.prototype.delEmpty=function(){ 1658 /**Удалить из массива пустые строки и undefined*/ 1659 var len=this.length; 1660 for(var i=0;i<len;i++){ 1661 if(this[i]===undefined || this[i]==""){ 1662 this.splice(i,1); 1663 len--; 1664 i--; 1665 } 1666 } 1667 } 1668 1669 Array.prototype.trimStrings=function(){ 1670 /**Для каждой строки-элемента массива вызвать .trim()*/ 1671 var len=this.length; 1672 for(var i=0;i<len;i++){ 1673 this[i]=this[i].trim(); 1674 } 1675 } 1676 1677 Array.prototype.replaceStrings=function(p1,p2){ 1678 /**Для каждой строки-элемента массива вызвать .replace(p1,p2)*/ 1679 var len=this.length; 1680 for(var i=0;i<len;i++){ 1681 this[i]=this[i].replace(p1,p2); 1682 } 1683 } 1684 1685 Array.prototype.delDublByProp=function(prop){ 1686 /**Удаление элементов массива, у которых свойства из массива строк prop совпадают с ранее рассмотренными.*/ 1687 var rez=this.slice(); 1688 rez=rez.sortBy(prop); 1689 var len=rez.length; 1690 var p=prop.length; 1691 for(var i=1;i<len;i++){ 1692 if(!compareObjects(rez[i-1],rez[i],prop)){ 1693 rez.splice(i,1); 1694 len--; 1695 i--; 1696 } 1697 } 1698 return rez; 1699 } 1700 1701 Array.prototype.sortNumeric=function(){ 1702 /**Сортировка численного массива.*/ 1703 return this.sort(function(a,b){ 1704 return a-b; 1705 }); 1706 } 1707 1708 Array.prototype.sortNumericArr=function(){ 1709 /**Сортировка массива числовых массивов по первому элементу.*/ 1710 return this.sort(function(a,b){ 1711 return a[0]-b[0]; 1712 }); 1713 } 1714 1715 Array.prototype.sortBy=function(prop){ 1716 /**Сортировка элементов массива по списку свойств prop, где prop - массив строк.*/ 1717 return this.sort(function(a,b){ 1718 return compareObjects(a,b,prop); 1719 }); 1720 1721 } 1722 1723 Array.prototype.getVariety=function(prop){ 1724 /**Возвращает массив значений выбранного свойства элементов-объектов исходного массива.*/ 1725 var len=this.length; 1726 var rez=[]; 1727 for(var i=0;i<len;i++){ 1728 if(this[i][prop]!==undefined){ 1729 if(this[i][prop].isArray){ 1730 rez=rez.concat(this[i][prop]); 1731 }else{ 1732 rez.push(this[i][prop]); 1733 } 1734 } 1735 } 1736 return rez.sortDelDubl(); 1737 } 1738 1739 Array.prototype.addToGlobal('docsArray',1); 1740 'use strict'; 1741 1742 Array.prototype.mt_prov=function(kolvo){ 1743 /**Проверяет, можно ли трактовать каждый элемент массива как точку, т. е. 1744 у каждого ли элемента массива есть свойства x и y, 1745 и, если kolvo, то есть ли в данном массиве kolvo точек.*/ 1746 if(this.length<kolvo) 1747 return 0; 1748 var fl=true; 1749 var len=this.length-1; 1750 for(;(len+1) && fl;len--) 1751 fl=fl&&(this[len].x!=undefined)&&(this[len].y!=undefined); 1752 return fl; 1753 }; 1754 1755 Array.prototype.mt_s3ug=function(){ 1756 /**Площадь треугольника, вершины которого - первые три элемента массива точек.*/ 1757 if(!this.mt_prov(3)) 1758 return 0; 1759 return 0.5*(this[0].x*this[1].y+this[0].y*this[2].x+this[1].x*this[2].y-this[1].y*this[2].x-this[2].y*this[0].x-this[0].y*this[1].x).abs(); 1760 }; 1761 1762 Array.prototype.mt_tgUnakl=function(){ 1763 /**Возвращает тангенс угла наклона прямой, проходящей через две первые точки массива.*/ 1764 if(!this.mt_prov(2)) 1765 return undefined; 1766 if(!(this[0].y-this[1].y)) 1767 return 0; 1768 return (this[0].y-this[1].y)/(this[0].x-this[1].x); 1769 } 1770 1771 Array.prototype.mt_is3ug=function(){ 1772 /**Проверяет, образуют ли три данные точки треугольник. 1773 Можно использовать и для того, чтобы выяснить, лежат ли три данные точки на одной прямой.*/ 1774 if(!this.mt_prov(3)) 1775 return 0; 1776 return this.mt_tgUnakl()!=[this[1],this[2]].mt_tgUnakl(); 1777 }; 1778 1779 Array.prototype.mt_uPeres=function(){ 1780 /**Угол пересечения прямых, проходящих через первые две пары точек.*/ 1781 if(!this.mt_prov(4)) 1782 return 0; 1783 var u=(this.mt_tgUnakl().atan()-[this[2],this[3]].mt_tgUnakl().atan()).abs(); 1784 for(;u>=Math.PI;u=u-Math.PI){}; 1785 for(;u>Math.PI/2;u=Math.PI-u){}; 1786 return u; 1787 }; 1788 1789 Array.prototype.mt_isMnug=function(p1){ 1790 /**Проверяет, задаёт ли массив точек p1-угольник. 1791 При вызове без параметра - многоугольник.*/ 1792 if( 1793 (p1!=undefined)&&(this.length!=p1) 1794 || (!this.mt_prov(3)) 1795 || (this.mt_dubli()) 1796 || (this.mt_estSamoper()) 1797 ){ 1798 return 0; 1799 } 1800 1801 var len=this.length-1; 1802 var fl=1; 1803 1804 fl*=[this[0],this[len],this[len-1]].mt_is3ug(); 1805 fl*=[this[0],this[1],this[len]].mt_is3ug(); 1806 for(;len-1;len--) 1807 fl*=[this[len],this[len-1],this[len-2]].mt_is3ug(); 1808 1809 return fl; 1810 }; 1811 1812 Array.prototype.mt_rasst=function(){ 1813 /**Расстояние между двумя первыми точками массива.*/ 1814 if(!this.mt_prov(2)) 1815 return undefined; 1816 return ((this[0].x-this[1].x).pow(2)+(this[0].y-this[1].y).pow(2)).sqrt(); 1817 }; 1818 1819 Array.prototype.mt_s4ug=function(){ 1820 /**Площадь четырёхугольника.*/ 1821 if(!this.mt_isMnug(4)) 1822 return undefined; 1823 return 0.5*[this[0],this[2]].mt_rasst()*[this[1],this[3]].mt_rasst()* 1824 [this[0],this[2],this[1],this[3]].mt_uPeres().sin(); 1825 }; 1826 1827 Array.prototype.mt_dubli=function(){ 1828 /**Есть ли в массиве повторяющиеся точки*/ 1829 if(!this.mt_prov()) 1830 return undefined; 1831 var len; 1832 var l2; 1833 for(len=this.length-1;len+1;len--) 1834 for(l2=this.length-1;l2>len;l2--) 1835 if(this[len].x==this[l2].x&&this[len].y==this[l2].y) 1836 return 1; 1837 return 0; 1838 }; 1839 1840 Array.prototype.mt_pryam=function(){ 1841 /**Возвращает коэффициенты a и b прямой y=ax+b, проходящей через две первые точки.*/ 1842 if(!this.mt_prov(2)) 1843 return undefined; 1844 var a=this.mt_tgUnakl(); 1845 if(a.abs()==Infinity) 1846 var b=this[0].x; 1847 else 1848 var b=this[0].y-a*this[0].x; 1849 return {a:a,b:b}; 1850 }; 1851 1852 Array.prototype.mt_join=function(p1){ 1853 /**Возращает строку - координаты точек через запятую.*/ 1854 if(!this.mt_prov()) 1855 return undefined; 1856 if(!p1) 1857 p1=', '; 1858 var p2=''; 1859 var len=this.length-1; 1860 for(var l2=0;l2<len;l2++) 1861 p2+='('+this[l2].x+'; '+this[l2].y+')'+p1; 1862 p2+='('+this[l2].x+'; '+this[l2].y+')'; 1863 return p2; 1864 } 1865 1866 Array.prototype.mt_otrPeres=function(){ 1867 /**Количество точек пересечения двух отрезков, задаваемых первыми парами точек.*/ 1868 if(!this.mt_prov()) 1869 return undefined; 1870 var p1=[[this[0],this[1]].mt_pryam(),[this[2],this[3]].mt_pryam()].mp_tPeres(); 1871 if(p1.x==Infinity) 1872 return Infinity; 1873 else if(p1.x.mzhd(this[0].x,this[1].x,1)&&p1.x.mzhd(this[2].x,this[3].x,1)&&p1.y.mzhd(this[0].y,this[1].y,1)&&p1.y.mzhd(this[2].y,this[3].y,1)) 1874 return 1; 1875 return 0; 1876 } 1877 1878 Array.prototype.mt_estSamoper=function(){ 1879 /**Имеет ли ломанная, образованная точками, самопересечения.*/ 1880 if(!this.mt_prov(3)) 1881 return undefined; 1882 var len=this.length; 1883 var th=this.concat(this,this); 1884 var fl=0; 1885 for(var l1=0;l1<len;l1++) 1886 for(var l2=l1+2;l2<=l1+len-2;l2++) 1887 fl+=[th[l1],th[l1+1],th[l2],th[l2+1]].mt_otrPeres(); 1888 return fl; 1889 } 1890 1891 Array.prototype.mt_ladMnug=function(){ 1892 /**Перемешивать точки до тех пор, пока не получится многоугольник.*/ 1893 if( (!this.mt_prov(3)) 1894 || (this.mt_dubli()) 1895 ) 1896 return 0; 1897 1898 for(;!this.mt_isMnug();this.shuffle()){}; 1899 //Крайне криво, но думать лень. 1900 return this; 1901 } 1902 1903 Array.prototype.mt_perpend=function(){ 1904 /**Перпендикулярны ли прямые, задаваемые первыми двумя парами точек.*/ 1905 return (this.mt_uPeres()==Math.PI/2); 1906 } 1907 1908 Array.prototype.mt_paral=function(){ 1909 /**Параллельны ли прямые, задаваемые первыми двумя парами точек.*/ 1910 return this.mt_uPeres()==0; 1911 } 1912 1913 Array.prototype.mt_imen4ug=function(){ 1914 /**Называет четырёхугольник.*/ 1915 if(!this.mt_isMnug(4)){return 0;}; 1916 var A=this[0]; 1917 var B=this[1]; 1918 var C=this[2]; 1919 var D=this[3]; 1920 var prug= ([A,B,B,C].mt_perpend())&& 1921 ([B,C,C,D].mt_perpend())&& 1922 ([A,D,D,C].mt_perpend()); 1923 var rstor= ([A,B].mt_rasst()==[A,D].mt_rasst())* 1924 ([C,B].mt_rasst()==[C,D].mt_rasst())+ 1925 ([B,A].mt_rasst()==[B,C].mt_rasst())* 1926 ([D,A].mt_rasst()==[D,C].mt_rasst()); 1927 var paral= ([A,B,C,D].mt_paral())+ 1928 ([A,D,B,C].mt_paral()); 1929 if(prug&&(rstor==2)) 1930 return lx['квадрат']; 1931 else if(prug) 1932 return lx['прямоугольник']; 1933 else if(rstor==2) 1934 return lx['ромб']; 1935 else if(paral==2) 1936 return lx['параллелограмм']; 1937 else if(paral==1) 1938 return lx['трапеция']; 1939 else if(rstor==1) 1940 return lx['дельтоид']; 1941 else 1942 return lx['четырёхугольник']; 1943 }; 1944 1945 Array.prototype.addToGlobal('docsArray',1); 1946 'use strict'; 1947 1948 Array.prototype.mp_prov=function(){ 1949 /**Проверяет, можно ли трактовать массив как массив прямых, 1950 т. е. у каждого ли элемента массива есть свойства a и b*/ 1951 var fl=true; 1952 var len=this.length-1; 1953 for(;(len+1)&&fl;len--) 1954 fl=fl&&(this[len].a!=undefined)&&(this[len].b!=undefined); 1955 return fl; 1956 } 1957 1958 Array.prototype.mp_tPeres=function(){ 1959 /**Находит точку пересечения первых двух прямых.*/ 1960 if(!this.mp_prov()) 1961 return undefined; 1962 1963 var x; 1964 var y; 1965 if(this[0].a.abs()==Infinity){ 1966 x=this[0].b; 1967 y=this[1].a*x+this[1].b; 1968 }else if(this[1].a.abs()==Infinity){ 1969 x=this[1].b; 1970 y=this[0].a*x+this[0].b; 1971 }else{ 1972 var c=this[1].a-this[0].a; 1973 if(c==0) 1974 if(this[0].b==this[1].b) 1975 x=y=Infinity; 1976 else 1977 x=y=NaN; 1978 else{ 1979 x=(this[0].b-this[1].b)/(this[1].a-this[0].a); 1980 y=this[0].a*x+this[0].b; 1981 } 1982 } 1983 return {x:x,y:y}; 1984 } 1985 1986 Array.prototype.addToGlobal('docsArray',1); 1987 'use strict'; 1988 Array.prototype.mn_proizv=function(){ 1989 /**Находит производную от многочлена, коэфф. которого в порядке возрастания степеней - элементы данного массива.*/ 1990 var len=this.length; 1991 var th=[]; 1992 for(var i=0;i<len-1;i++){ 1993 th[i]=clone(this[i+1]); 1994 th[i]=Drob.fixN(th[i]); 1995 th[i].ch=th[i].ch*(i+1); 1996 Drob.sokr(th[i]); 1997 } 1998 return th; 1999 } 2000 2001 Array.prototype.mn_vychisl=function(x){ 2002 /**Находит значение многочлена, коэфф. которого в порядке возрастания степеней - элементы данного массива, 2003 при значении переменной, равном x*/ 2004 var len=this.length; 2005 var s=0; 2006 for(var i=0;i<len;i++){ 2007 this[i]=Drob.fixN(this[i]); 2008 s+=this[i].ch*x.pow(i)/this[i].zn; 2009 } 2010 return s; 2011 } 2012 2013 Array.prototype.mn_txt=function(x){ 2014 /**TeX-представление многочлена, коэфф. которого в порядке возрастания степеней - элементы данного массива, x - символ переменной.*/ 2015 var len=this.length; 2016 this[0]=Drob.fixN(this[0]); 2017 var s=this[0].ch.frac(this[0].zn).esli(this[0].ch); 2018 for(var i=1;i<len;i++){ 2019 this[i]=Drob.fixN(this[i]); 2020 if(this[i].ch){ 2021 s= this[i].ch.frac(this[i].zn)+x+('^{'+i+'}').esli(i!=1) 2022 +'+'+s; 2023 } 2024 } 2025 return s.plusminus(); 2026 } 2027 2028 Array.prototype.mn_pervoobr=function(){ 2029 /**Находит первообразную (C=0) от многочлена, коэфф. которого в порядке возрастания степеней - элементы данного массива.*/ 2030 var len=this.length; 2031 var th=[0]; 2032 for(var i=1;i<len+1;i++){ 2033 th[i]=clone(this[i-1]); 2034 th[i]=Drob.fixN(th[i]); 2035 th[i].zn=th[i].zn*i; 2036 Drob.sokr(th[i]); 2037 } 2038 return th; 2039 } 2040 2041 Array.prototype.mn_txtmas=function(x){ 2042 /**TeX-представление многочлена, коэфф. которого в порядке возрастания степеней - элементы данного массива, x - символ переменной, в виде массива выражений*/ 2043 var len=this.length; 2044 this[0]=Drob.fixN(this[0]); 2045 var s=[this[0].ch.frac(this[0].zn).esli(this[0].ch)]; 2046 for(var i=1;i<len;i++){ 2047 this[i]=Drob.fixN(this[i]); 2048 if(this[i].ch){ 2049 s.push(this[i].ch.frac(this[i].zn)+x+('^{'+i+'}').esli(i!=1)); 2050 } 2051 } 2052 return s; 2053 } 2054 2055 Array.prototype.addToGlobal('docsArray',1); 2056 'use strict'; 2057 2058 Array.prototype.pe_inv=function(){ 2059 /**Количество инверсий в перестановке, образованной элементами массива.*/ 2060 var perest=0; 2061 var len=this.length; 2062 for(var i=0;i<len;i++) 2063 for(var j=i;j<len;j++) 2064 if(this[i]>this[j]) 2065 perest++; 2066 return perest; 2067 } 2068 2069 Array.prototype.pe_txt=function(){ 2070 /**Перестановка, образованная элементами массива, в TeX-нотации.*/ 2071 return "$\\left("+this.join(";")+"\\right)$"; 2072 } 2073 2074 Array.prototype.addToGlobal('docsArray',1); 2075 'use strict'; 2076 2077 CanvasRenderingContext2D.prototype.drawLine=function(x1,y1,x2,y2){ 2078 this.beginPath(); 2079 this.moveTo(x1,y1); 2080 this.lineTo(x2,y2); 2081 this.stroke(); 2082 this.closePath(); 2083 } 2084 2085 CanvasRenderingContext2D.prototype.setka=function(s,n){ 2086 for(var i=-n;i<=n;i++){ 2087 this.drawLine(-s*n,s*i,s*n,s*i); 2088 this.drawLine(s*i,-s*n,s*i,s*n); 2089 } 2090 } 2091 2092 CanvasRenderingContext2D.prototype.setkaXY=function(s,n1,n2,n3,n4){ 2093 for(var i=n1;i<=n2;i++){ 2094 this.drawLine(s*i,s*n3,s*i,s*n4); 2095 } 2096 for(i=n3;i<=n4;i++){ 2097 this.drawLine(s*n1,s*i,s*n2,s*i); 2098 } 2099 } 2100 2101 CanvasRenderingContext2D.prototype.fillKrug=function(x,y,r){ 2102 this.beginPath(); 2103 this.arc(x,y, r, 0, 2*Math.PI, false); 2104 this.fill(); 2105 } 2106 2107 CanvasRenderingContext2D.prototype.drawLineSpec=function(x1,y1,x2,y2){ 2108 var m = (x1-x2); 2109 var n = (y1-y2); 2110 var k = (n/m); 2111 2112 if(x1==x2){ 2113 for(var iy = Math.min(y1,y2); iy < Math.max(y1,y2); iy += 14){ 2114 this.drawLine(x1,iy,x1,iy+7); 2115 } 2116 } 2117 2118 if(y1==y2){ 2119 for(var ix = Math.min(x1,x2); ix < Math.max(x1,x2); ix += 14){ 2120 this.drawLine(ix, y1, ix+7, y1); 2121 } 2122 } 2123 2124 if((x2>x1)&(y2>y1)){ 2125 for (var ix=x1+7; ix<x2; ix+=14){ 2126 this.drawLine(ix, y1+ix-x1, ix+7, y1+ix-x1+7); 2127 } 2128 } 2129 2130 if((x2>x1)&(y2<y1)){ 2131 for (var ix=x1+7; ix<x2; ix+=14){ 2132 this.drawLine(ix, y1-ix-x1, ix+7, y1-ix-x1-7); 2133 } 2134 } 2135 2136 if((x2<x1)&(y2<y1)){ 2137 for (var ix=x2+7; ix<x1; ix+=14){ 2138 this.drawLine(ix, y2+ix-x2, ix+7, y2+ix-x2+7); 2139 } 2140 } 2141 2142 if((x2<x1)&(y2>y1)){ 2143 for (var ix=x2+7; ix<x1; ix+=14){ 2144 this.drawLine(ix, y2-ix+x2, ix+7, y2-ix+x2-7); 2145 } 2146 } 2147 } 2148 2149 CanvasRenderingContext2D.prototype.isCanvasRenderingContext2D=true; 2150 2151 /*Иначе огнелисичка матюкается 2152 var docsCanvas; 2153 if(!docsCanvas) 2154 docsCanvas={}; 2155 2156 for(var chto in CanvasRenderingContext2D.prototype){ 2157 docsCanvas[chto]=CanvasRenderingContext2D.prototype[chto]; 2158 // Object.defineProperty(CanvasRenderingContext2D.prototype, chto, { enumerable: false }); 2159 }*/ 2160 'use strict'; 2161 Number.prototype.toFixedLess=function(n){ 2162 /**Возвращает строку - предсиавление числа с не более чем n знаками после запятой.*/ 2163 var a=this.toFixed(n); 2164 for(;a.posl()=='0'&&a.search(/[.]/)!=-1;a=a.udalPosl()){}; 2165 for(;a.posl()=='.';a=a.udalPosl()){}; 2166 return a; 2167 } 2168 2169 Number.prototype.pm=function(){ 2170 /**Случайным образом возвращает число или ему противоположное.*/ 2171 return sl1()?this:-this; 2172 } 2173 2174 Number.prototype.dopdo=function(c,n){ 2175 /**Возвращает строковое представление числа, дополненное спереди строками c до длины не менее n*/ 2176 return (''+this).dopdo(c,n); 2177 } 2178 2179 Number.prototype.isZ=function(){ 2180 /**Проверяет, является ли число целым.*/ 2181 return this-this.floor()==0; 2182 } 2183 2184 Number.prototype.isPolnKvadr=function(){ 2185 /**Проверяет, является ли число полным квадратом.*/ 2186 return this.sqrt().isZ(); 2187 } 2188 2189 Number.prototype.ts= 2190 Number.prototype.toStandart=function(p1){ 2191 /**Возвращает представление числа в записи "по стандарту": с десятичной запятой и не более чем 10 знаками после неё. 2192 Для отсечения "ложной точности" хватает.*/ 2193 return this.toFixedLess(10).toStandart(p1); 2194 } 2195 2196 Number.prototype.mzhd=function(a,b,c){ 2197 /**Находится ли число между a и b, если c - то включительно. a и b можно не упорядочивать.*/ 2198 var p1=[a,b]; 2199 var p2=p1[p1.max()]; 2200 var p3=p1[p1.min()]; 2201 return (this<p2)&&(this>p3)||((this==p2)||(this==p3))&&(!!c); 2202 } 2203 2204 Number.prototype.polozh=function(){ 2205 /**Если число положительно, вернёт его, иначе 0.*/ 2206 return this<0?0:this; 2207 } 2208 2209 Number.prototype.nod=function(p1){ 2210 /**НОД данного числа и p1*/ 2211 var a,b; 2212 a=this<0?-this:this; 2213 b=p1<0?-p1:p1; 2214 if(a==b) return a; 2215 if((a==1)||(b==1))return 1; 2216 if(a==0) return b; 2217 if(b==0) return a; 2218 if(a>b) return b.nod(a%b); 2219 return a.nod(b%a); 2220 } 2221 2222 Number.prototype.pina=function(p1){ 2223 /**TeX-представление дроби, у которой в числителе данное число, умнолженное на пи, а в знаменателе p1. 2224 Случай p1=1 учитывается.*/ 2225 var a1={ch:this,zn:p1}; 2226 Drob.sokr(a1); 2227 if(a1.ch==0) 2228 return '0'; 2229 var z=''; 2230 if(a1.ch<0){ 2231 z='-'; 2232 a1.ch*=-1; 2233 } 2234 return z+('\\frac{').esli(a1.zn!=1)+(a1.ch==1?'':a1.ch)+'\\pi'+('}{'+a1.zn+'}').esli(a1.zn!=1); 2235 } 2236 2237 Number.prototype.koren=function(p1){ 2238 /**TeX-представление корня из данного числа. 2239 Если данное число полный квадрат, то само число. 2240 Если p1, то из-под корня будут вынесены возможные множители.*/ 2241 if(this.isPolnKvadr()) 2242 return this.ts(); 2243 var a=''; 2244 var t=this; 2245 if(p1){ 2246 a=this.polnKvadrMnozh(); 2247 t=t/a.sqr(); 2248 } 2249 return a+'\\sqrt{'+t.ts()+'}'; 2250 } 2251 2252 Number.prototype.polnKvadrMnozh=function(){ 2253 /**Максимальный делитель данного числа, квадрат которого также является делителем данного числа.*/ 2254 if(this==0) 2255 return 0; 2256 var t=this.abs(); 2257 var i=1; 2258 for(var rez=1;i.sqr()<=t;i++) 2259 if(t.kratno(i.sqr())) 2260 rez=i; 2261 return rez; 2262 } 2263 2264 Number.prototype.frac=function(p1){ 2265 /**TeX-представление дроби, у которой в числителе данное число, а в знаменателе p1. 2266 Случай p1=1 учитывается.*/ 2267 var a1={ch:this,zn:p1}; 2268 if(p1.isString) 2269 return ('\\frac{').esli(a1.zn!='1')+(a1.ch==1?'1':a1.ch)+('}{'+a1.zn+'}').esli(a1.zn!='1'); 2270 2271 Drob.sokr(a1); 2272 if(a1.ch==0)return '0'; 2273 var z=''; 2274 if(a1.ch<0){ 2275 z='-'; 2276 a1.ch*=-1; 2277 } 2278 return z+('\\frac{').esli(a1.zn!=1)+(a1.ch==1?'1':a1.ch)+('}{'+a1.zn+'}').esli(a1.zn!=1); 2279 2280 } 2281 2282 Number.prototype.fracstr=function(p1,str){ 2283 /**TeX-представление дроби с числителем - произведением данного числа и строки str и знаменателем p1.*/ 2284 var a1={ch:this,zn:p1}; 2285 if(p1.isString) 2286 return 2287 a1.zn!=1? 2288 '\\frac{'+a1.ch+str+'}{'+a1.zn+'}': 2289 '{'+a1.ch+str+'}'; 2290 2291 Drob.sokr(a1); 2292 if(!a1.ch) 2293 return '0'; 2294 var z=''; 2295 if(a1.ch<0){ 2296 z='-'; 2297 a1.ch*=-1; 2298 } 2299 return z+('\\frac{').esli(a1.zn!=1)+(a1.ch==1?str:a1.ch+str)+('}{'+a1.zn+'}').esli(a1.zn!=1); 2300 2301 } 2302 2303 Number.prototype.kratno=function(p1){ 2304 /**Кратно ли данное число p1*/ 2305 return !(this%p1); 2306 } 2307 2308 Number.prototype.delit=function(p1){ 2309 /**Является ли данное число делителем p1*/ 2310 return !(p1%this); 2311 } 2312 2313 Number.prototype.sluchDel=function(){ 2314 /**Возвращает случайный делитель числа.*/ 2315 for(var r=this+1;!this.kratno(r);r=sluchch(1,this)){}; 2316 return r; 2317 } 2318 2319 Number.prototype.toChMin=function(){ 2320 /**Трактует число как количество минут и возвращает строку вида "A часов B минут".*/ 2321 var a=(this/60).floor(); 2322 var b=this%60; 2323 return chislitlx(a,'час').esli(a)+' '.esli(a&&b)+chislitlx(b,'минута').esli(b); 2324 } 2325 2326 Number.prototype.chislit=function(p1,p2,p3){ 2327 /**Вспомогательная функция для согласования существительного с числительным.*/ 2328 return chislit(this,p1,p2,p3); 2329 } 2330 2331 Number.prototype.chislitM=function(p1,p2,p3){ 2332 /**Вспомогательная функция для согласования существительного с числительным.*/ 2333 return chislitM(this,p1,p2,p3); 2334 } 2335 2336 Number.prototype.chislitlx=function(p1,p2){ 2337 /**Возвращает строку, состоящую из данного числа и подходящего падежа слова p1, при этом 2338 полученное словосочетанию стоит в падеже p2 (есдли не указан - именительный).*/ 2339 return chislitlx(this,p1,p2); 2340 } 2341 2342 Number.prototype.min=function(){ 2343 /**Минимум из данного числа и всех аргументов функции.*/ 2344 var a=Array.prototype.slice.call(arguments); 2345 a.push(this); 2346 return a.minE(); 2347 } 2348 2349 Number.prototype.max=function(){ 2350 /**Максиимум из данного числа и всех аргументов функции.*/ 2351 var a=Array.prototype.slice.call(arguments); 2352 a.push(this); 2353 return a.maxE(); 2354 } 2355 2356 Number.prototype.plusminus=Number.prototype.ts; 2357 2358 Number.prototype.proporMezhdu=function(k,pr){ 2359 /**Возвращает число, лежащее между данным и k пропорционально pr*/ 2360 return this+(k-this)*pr; 2361 } 2362 2363 Number.prototype.toDvoet=function(a){ 2364 /**Представить число в виде "часы-минуты" с двоеточием.*/ 2365 if(!a) 2366 a=60; 2367 return Math.floor(this/60)+':'+Math.floor(this%60).dopdo('0',2); 2368 } 2369 2370 Number.prototype.okrugldo=function(p1){ 2371 /**Округлить число до кратных p1*/ 2372 return okrugldo(this,p1); 2373 } 2374 2375 Number.prototype.fct=function(){ 2376 /**Факториал числа.*/ 2377 return this>0?(this-1).fct()*this:1; 2378 } 2379 2380 Number.prototype.rub=function(){ 2381 /**Возвращает строку вида this рублей*/ 2382 return chislitlx(this,'рубль'); 2383 } 2384 2385 Number.prototype.toComplex=function(){ 2386 /**Представляет число в виде чисто действительного комплексного*/ 2387 return new Complex(this); 2388 } 2389 2390 Number.prototype.isNumber=true; 2391 2392 Number.prototype.addToGlobal('docsNumber',1); 2393 'use strict'; 2394 2395 Number.prototype.pow=function(n){ 2396 /**Возвращает число в степени n*/ 2397 return Math.pow(this,n); 2398 } 2399 2400 Number.prototype.sqrt=function(){ 2401 /**Квадратный корень из числа.*/ 2402 return Math.sqrt(this); 2403 } 2404 2405 Number.prototype.sqr=function(){ 2406 /**Квадрат числа.*/ 2407 return Math.pow(this,2); 2408 } 2409 Number.prototype.abs=function(){ 2410 /**Модуль числа.*/ 2411 return Math.abs(this); 2412 } 2413 2414 Number.prototype.floor=function(){ 2415 /**Округлить число до целых в меньшую сторону.*/ 2416 return Math.floor(this); 2417 } 2418 2419 Number.prototype.ceil=function(){ 2420 /**Округлить число до целых в большую сторону.*/ 2421 return Math.ceil(this); 2422 } 2423 2424 Number.prototype.arctg= 2425 Number.prototype.atan=function(){ 2426 /**Арктангенс числа.*/ 2427 return Math.atan(this); 2428 } 2429 2430 Number.prototype.arcsin= 2431 Number.prototype.asin=function(){ 2432 /**Арксинус числа.*/ 2433 return Math.asin(this); 2434 } 2435 2436 Number.prototype.arccos= 2437 Number.prototype.acos=function(){ 2438 /**Арккосинус числа.*/ 2439 return Math.acos(this); 2440 } 2441 2442 Number.prototype.arcctg=function(){ 2443 /**Аркотангенс числа.*/ 2444 return Math.atan(1/this); 2445 } 2446 2447 Number.prototype.sin=function(){ 2448 /**Синус числа.*/ 2449 return Math.sin(this); 2450 } 2451 2452 Number.prototype.cos=function(){ 2453 /**Косинус числа.*/ 2454 return Math.cos(this); 2455 } 2456 2457 Number.prototype.tg= 2458 Number.prototype.tan=function(){ 2459 /**Тангенс числа.*/ 2460 return Math.tan(this); 2461 } 2462 2463 Number.prototype.ctg=function(){ 2464 /**Котангенс числа.*/ 2465 return 1/Math.tan(this); 2466 } 2467 2468 Number.prototype.round=function(){ 2469 /**Округление числа до целых.*/ 2470 return Math.round(this); 2471 } 2472 2473 Number.prototype.addToGlobal('docsNumber',1); 2474 'use strict'; 2475 2476 String.prototype.mesh=function(){ 2477 /**Перемешивает строку посимвольно в случайном порядке*/ 2478 return this.split('').shuffle().soed(); 2479 }; 2480 2481 String.prototype.dopdo=function(c,n){ 2482 /**Дополняет строку подстроками спереди, пока длина строки не станет не менее n.*/ 2483 var str=this; 2484 for(;str.length<n;str=c+str){}; 2485 return str; 2486 }; 2487 2488 String.prototype.toZagl=function(){ 2489 /**Делает первую букву строки заглавной*/ 2490 if(this=='') 2491 return ''; 2492 return this[0].toUpperCase()+this.substr(1);//.toLowerCase(); 2493 }; 2494 2495 String.prototype.frac=function(p1){ 2496 /**Возвращает TeX-запись дроби, в которой числитель - данная строка, знаменатель p1.*/ 2497 return '\\frac{'+this+'}{'+p1+'}'; 2498 } 2499 2500 String.prototype.posl=function(){ 2501 /**Возвращает последний символ строки*/ 2502 return this[this.length-1]; 2503 }; 2504 2505 String.prototype.udalPosl=function(n){ 2506 /**Удаляет n последних символов строки. При вызове без параметров удаляет 1 символ.*/ 2507 if(n==undefined) 2508 n=1; 2509 return this.substr(0,this.length-n); 2510 }; 2511 2512 String.prototype.udalPerv=function(n){ 2513 /**Удаляет n первых символов строки. При вызове без параметров удаляет 1 символ.*/ 2514 if(n==undefined) 2515 n=1; 2516 return this.substr(n,this.length-n); 2517 }; 2518 2519 String.prototype.toStandart=function(p1){ 2520 /**Приводит строку к записи "по стандарту": заменяет точку на запятую. 2521 Если p1, то берёт запятую в фигурные скобки, чтобы убрать отступы в TeX. 2522 Предназначена для строк, содержащих представление числа.*/ 2523 var a=this.replace(/[.]/g,','); 2524 if(p1) 2525 a=a.replace(/[,]/,'{,}'); 2526 return a; 2527 }; 2528 2529 String.prototype.esli=function(p1){ 2530 /**Возвращает данную строку, если p1, и пустую в противном случае.*/ 2531 return p1?this:''; 2532 } 2533 2534 String.prototype.vTag=function(p1,p2){ 2535 /**"Оборачивает" данную строку с тэг p1 c параметрами p2. p2 можно опускать.*/ 2536 return '<'+p1+(' '+p2).esli(p2)+'>'+this+'</'+p1+'>'; 2537 } 2538 2539 String.prototype.vTabl=function(p1,p2){ 2540 /**"Оборачивает" данную строку в тэг таблицы. Применяется крайне редко и узко.*/ 2541 return (p1?p1:'<br/><br/>')+ 2542 this.vTag('table',p2?p2:'style="text-align:center;font:inherit;" border=1'); 2543 //.vTag('center'); 2544 } 2545 2546 String.prototype.reverse=function (){ 2547 /**Переворачивает строку*/ 2548 return this.split('').reverse().soed(); 2549 };//http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript //Товарищ очень сильно выручил 2550 2551 String.prototype.tn=function(){ 2552 /**Возвращает число, если данная строка - запись числа с десятичной точкой или запятой.*/ 2553 return 1*this.replace(',','.'); 2554 }; 2555 2556 String.prototype.ob$=function(){ 2557 /**Оборачивает строку в символы начала/конца формулы TeX - $*/ 2558 return '$'+this+'$'; 2559 }; 2560 2561 String.prototype.encodeURIComponent=function(){ 2562 return encodeURIComponent(this); 2563 } 2564 2565 String.prototype.decodeURIComponent=function(){ 2566 return decodeURIComponent(this); 2567 } 2568 2569 String.prototype.encodeURI=function(){ 2570 return encodeURI(this); 2571 } 2572 2573 String.prototype.decodeURI=function(){ 2574 return decodeURI(this); 2575 } 2576 2577 String.prototype.neutralizeXSS=function(){ 2578 /**Нейтрализует (экранирует) XSS-угрозы. По крайней мере, должна. Будет пополняться.*/ 2579 return this.replace(/<\//g,''); 2580 } 2581 2582 String.prototype.toNumberExt=function(){ 2583 /**Превращает арифметическое выражение (+-/*) в число.*/ 2584 if(/[\s0-9\.,\+\-\*\/\(\)]+/.test(this)){ 2585 try{ 2586 return eval(this.replace(/\,/g,'.')); 2587 }catch(e){ 2588 } 2589 } 2590 return 0; 2591 } 2592 2593 String.prototype.toMtr=function(){ 2594 /**Превращает многострочный текст в матрицу строк.*/ 2595 var t=this. 2596 replace(/<br[\/]*>/g,'\n'). 2597 replace(/[\t]+/g,' '). 2598 trim(); 2599 var a=t.split(/\s*[\n\r]+\s*/); 2600 var len=a.length; 2601 for (var i=0;i<len;i++) 2602 a[i]=a[i].split(/\s+/); 2603 return a; 2604 } 2605 2606 String.prototype.istDataToStd=function(){ 2607 /**Приводит дату, записанную в одной из общепринятых форм, к записи "по стандарту". Применяется только в комплексе заданий по истории.*/ 2608 var a=this; 2609 a=a.replace(/\s/g,'.'); 2610 a=a.replace(/\//g,'.'); 2611 a=a.replace(/[-]/g,'.'); 2612 a=a.replace(/[,]/g,'.'); 2613 a=a.replace(/ю/g,'.'); 2614 a=a.replace(/[.]+/g,'.'); 2615 a=a.replace(/[.]0/g,'.'); 2616 a=a.replace(/^0/g,''); 2617 a=a.replace(/^[.]/g,''); 2618 //Убираем г. в конце, если есть 2619 a=a.replace(/[.]$/g,''); 2620 a=a.replace(/г$/g,''); 2621 a=a.replace(/[.]$/g,''); 2622 //Теперь меняем номер месяца на месяц 2623 a=a.replace(/[.]1[.]/g, ' января ' ); 2624 a=a.replace(/[.]2[.]/g, ' февраля ' ); 2625 a=a.replace(/[.]3[.]/g, ' марта ' ); 2626 a=a.replace(/[.]4[.]/g, ' апреля ' ); 2627 a=a.replace(/[.]5[.]/g, ' мая ' ); 2628 a=a.replace(/[.]6[.]/g, ' июня ' ); 2629 a=a.replace(/[.]7[.]/g, ' июля ' ); 2630 a=a.replace(/[.]8[.]/g, ' августа ' ); 2631 a=a.replace(/[.]9[.]/g, ' сентября '); 2632 a=a.replace(/[.]10[.]/g,' октября ' ); 2633 a=a.replace(/[.]11[.]/g,' ноября ' ); 2634 a=a.replace(/[.]12[.]/g,' декабря ' ); 2635 //И наконец, если исправление буквы "ю" на точку привело к повреждению названия месяца: 2636 a=a.replace(/и[.]ня/g, 'июня' ); 2637 a=a.replace(/и[.]ля/g, 'июля' ); 2638 //Меняем точки на пробелы 2639 a=a.replace(/[.]/g, ' ' ); 2640 2641 a=a+' г.'; 2642 2643 return a; 2644 }; 2645 2646 String.prototype.plusminus=function(){ 2647 /**Примитивное упрощение математических выражений. Меняет "++" на "+", например.*/ 2648 var a=this; 2649 for(;a.match(/[+-][+-]/);){ 2650 a=a.replace(/[+][+]/g,'+'); 2651 a=a.replace(/--/g,'+'); 2652 a=a.replace(/[+]-/g,'-'); 2653 a=a.replace(/-[+]/g,'-'); 2654 a=a.replace(/[+]$/g,''); 2655 a=a.replace(/[{][+]/g,'{'); 2656 a=a.replace(/[+][}]/g,'}'); 2657 a=a.replace(/\(\+/g,'('); 2658 a=a.replace(/\+\)/g,')'); 2659 } 2660 a=a.replace(/[=]\s*[+]/g,'='); 2661 a=a.replace(/[+]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'+'); 2662 a=a.replace(/[-]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'-'); 2663 a=a.replace(/[{]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'{'); 2664 a=a.replace(/[}]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'}'); 2665 a=a.replace(/[ ]1(?=[A-Za-zА-Яа-яЁё\\(])/g,' '); 2666 a=a.replace(/[~]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'~'); 2667 a=a.replace(/[(]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'('); 2668 a=a.replace(/[)]1(?=[A-Za-zА-Яа-яЁё\\(])/g,')'); 2669 a=a.replace(/[=]1(?=[A-Za-zА-Яа-яЁё\\(])/g,'='); 2670 a=a.replace(/[;]1(?=[A-Za-zА-Яа-яЁё\\(])/g,';'); 2671 a=a.replace(/\^1(?=[A-Za-zА-Яа-яЁё\\(])/g,'^'); 2672 a=a.replace(/\$1(?=[A-Za-zА-Яа-яЁё\\(])/g,'$'); 2673 a=a.replace(/^1(?=[A-Za-zА-Яа-яЁё])/g,''); 2674 a=a.replace(/^[+]/g,''); 2675 a=a.replace(/[;][-]0/g,';0'); 2676 a=a.reverse(); 2677 a=a.replace(/[.]{2}(?=[A-Za-zА-Яа-яЁё])/g,'.'); 2678 a=a.replace(/[.]{1}[$][.]{1}(?=[A-Za-zА-Яа-яЁё\\])/g,'$.'); 2679 a=a.reverse(); 2680 return a; 2681 }; 2682 2683 String.prototype.insert=function(i,str) { 2684 //вставляет в строку после i-го символа 2685 var ss=''; 2686 if (i>0) 2687 ss=this.substring(0, i); 2688 var sss=''; 2689 if (i<this.length-1) 2690 sss=this.substring(i); 2691 return ss+str+sss; 2692 } 2693 2694 String.prototype.isLetter=function() { 2695 /**проверяет, буква ли данный символ*/ 2696 var d = (this.length==1) && (this.search(/[a-z]/)!=-1); 2697 return d; 2698 } 2699 2700 String.prototype.isGl=function() { 2701 /**проверяет, гласная ли данный символ*/ 2702 var d = (this.search(/[aeiou]/)!=-1) && (this.length==1); 2703 return d; 2704 } 2705 2706 String.prototype.cepZamena=function(mas1, mas2){ 2707 /**Заменяет i-й символ из массива mas1 i-м символом из массива mas2*/ 2708 var len=this.length; 2709 var rez=''; 2710 var fl; 2711 for(var i=0; i<len; i++){ 2712 fl=1; 2713 for(var j=0;j<26 && fl;j++){ 2714 if(this[i]==mas1[j]){ 2715 rez+=mas2[j]; 2716 fl=0; 2717 } 2718 } 2719 if(fl){ 2720 rez+=this[i]; 2721 } 2722 } 2723 return rez; 2724 } 2725 2726 String.prototype.multiply=function(n){ 2727 /**Возвращает строку, записанную n раз подряд*/ 2728 var rez=this; 2729 for(var i=1;i<n;i++) 2730 rez+=this; 2731 return rez; 2732 } 2733 2734 String.prototype.isString=true; 2735 2736 String.prototype.addToGlobal('docsString',1); 2737 2738 'use strict'; 2739 2740 Function.prototype.toStr=function(){ 2741 /**Возвращает код функции в виде строки*/ 2742 return ''+this; 2743 } 2744 2745 Function.prototype.telo=function(){ 2746 /**Возвращает тело функции в виде строки*/ 2747 return this.toStr().replace(/}$/,'').replace(/^function \(.*\){/,''); 2748 } 2749 2750 Function.prototype.zagl=function(){ 2751 /**Возвращает заголовок функции в виде строки*/ 2752 return /^function \(.*\)/.exec(this.toStr())[0]; 2753 } 2754 2755 Function.prototype.attr=function(){ 2756 /**Возвращает список параметров функции в виде строки*/ 2757 return this.zagl().replace(/^function /,''); 2758 } 2759 2760 Function.prototype.codeComment=function(){ 2761 /**Возвращает первый документационный комментарий внутри функции - такой, как этот.*/ 2762 try{ 2763 return /\/\*\*.*?[\s\S]*?\*\//m. 2764 exec(this.toStr())[0]. 2765 replace(/^\/\*\*/,''). 2766 replace(/\*\/$/,''); 2767 }catch(e){ 2768 return ''; 2769 } 2770 } 2771 2772 Function.prototype.isFunction=true; 2773 2774 Function.prototype.addToGlobal('docsFunction',1); 2775 'use strict'; 2776 2777 RegExp.prototype.isRegExp=true; 2778 2779 RegExp.prototype.addToGlobal('docsRegExp',1); 2780 //////////////////////////////////////////////////////////////////////// 2781 // 2782 // ie: именительный падеж единственного числа 2783 // re: родительный падеж единственного числа 2784 // de: дательный падеж единственного числа 2785 // ve: винительный падеж единственного числа 2786 // te: творительный падеж единственного числа 2787 // pe: предложный падеж единственного числа 2788 // ie: именительный падеж множественного числа 2789 // re: родительный падеж множественного числа 2790 // de: дательный падеж множественного числа 2791 // ve: винительный падеж множественного числа 2792 // te: творительный падеж множественного числа 2793 // pe: предложный падеж множественного числа 2794 // 2795 // rod: род: 2796 // 0: мужской 2797 // 1: женский 2798 // 2: средний 2799 // 3: только множественное число 2800 // 2801 // odu: одушевлённость: 2802 // 0: неодушевлённое 2803 // 1: одушевлённое 2804 // 2805 // skl: склонение: 2806 // 0: несклоняемое 2807 // 1: первое 2808 // 2: второе 2809 // 3: третье 2810 // 4: разносклоняемые существительные 2811 //////////////////////////////////////////////////////////////////////// 2812 if(lx==undefined) 2813 var lx=[]; //Объявляем глобальный объект lx 2814 //////////////////////////////////////////////////////////////////////// 2815 2816 2817 //{{Существительные 2818 lx['август']={ 2819 ie:'август', 2820 re:'августа', 2821 de:'августу', 2822 ve:'август', 2823 te:'августом', 2824 pe:'августе', 2825 im:'августы', 2826 rm:'августов', 2827 dm:'августам', 2828 vm:'августы', 2829 tm:'августами', 2830 pm:'августах', 2831 rod:0, 2832 skl:2, 2833 odu:0, 2834 }; 2835 lx['Австралия']={ 2836 ie:'Австралия', 2837 re:'Австралии', 2838 de:'Австралии', 2839 ve:'Австралию', 2840 te:'Австралией', 2841 pe:'Австралии', 2842 im:'Австралии', 2843 rm:'Австралий', 2844 dm:'Австралиям', 2845 vm:'Австралии', 2846 tm:'Австралиями', 2847 pm:'Австралиях', 2848 rod:1, 2849 skl:1, 2850 odu:0, 2851 }; 2852 lx['Австрия']={ 2853 ie:'Австрия', 2854 re:'Австрии', 2855 de:'Австрии', 2856 ve:'Австрию', 2857 te:'Австрией', 2858 pe:'Австрии', 2859 im:'Австрии', 2860 rm:'Австрий', 2861 dm:'Австриям', 2862 vm:'Австрии', 2863 tm:'Австриями', 2864 pm:'Австриях', 2865 rod:1, 2866 skl:1, 2867 odu:0, 2868 }; 2869 lx['автобус']={ 2870 ie:'автобус', 2871 re:'автобуса', 2872 de:'автобусу', 2873 ve:'автобус', 2874 te:'автобусом', 2875 pe:'автобусе', 2876 im:'автобусы', 2877 rm:'автобусов', 2878 dm:'автобусам', 2879 vm:'автобусы', 2880 tm:'автобусами', 2881 pm:'автобусах', 2882 rod:0, 2883 skl:2, 2884 odu:0, 2885 }; 2886 lx['автомобиль']={ 2887 ie:'автомобиль', 2888 re:'автомобиля', 2889 de:'автомобилю', 2890 ve:'автомобиль', 2891 te:'автомобилем', 2892 pe:'автомобиле', 2893 im:'автомобили', 2894 rm:'автомобилей', 2895 dm:'автомобилям', 2896 vm:'автомобили', 2897 tm:'автомобилями', 2898 pm:'автомобилях', 2899 rod:0, 2900 skl:2, 2901 odu:0, 2902 }; 2903 lx['аквариум']={ 2904 ie:'аквариум', 2905 re:'аквариума', 2906 de:'аквариуму', 2907 ve:'аквариум', 2908 te:'аквариумом', 2909 pe:'аквариуме', 2910 im:'аквариумы', 2911 rm:'аквариумов', 2912 dm:'аквариумам', 2913 vm:'аквариумы', 2914 tm:'аквариумами', 2915 pm:'аквариумах', 2916 rod:0, 2917 skl:2, 2918 odu:0, 2919 }; 2920 lx['Анастасия']={ 2921 ie:'Анастасия', 2922 re:'Анастасии', 2923 de:'Анастасии', 2924 ve:'Анастасию', 2925 te:'Анастасией', 2926 pe:'Анастасии', 2927 im:'Анастасии', 2928 rm:'Анастасий', 2929 dm:'Анастасиям', 2930 vm:'Анастасий', 2931 tm:'Анастасиями', 2932 pm:'Анастасиях', 2933 rod:1, 2934 skl:1, 2935 odu:1, 2936 sbs:1, 2937 }; 2938 lx['Анатольевна']={ 2939 ie:'Анатольевна', 2940 re:'Анатольевны', 2941 de:'Анатольевне', 2942 ve:'Анатольевну', 2943 te:'Анатольевной', 2944 pe:'Анатольевне', 2945 im:'Анатольевны', 2946 rm:'Анатольевн', 2947 dm:'Анатольевнам', 2948 vm:'Анатольевн', 2949 tm:'Анатольевнами', 2950 pm:'Анатольевнах', 2951 rod:1, 2952 skl:1, 2953 odu:1, 2954 sbs:1, 2955 }; 2956 lx['Англия']={ 2957 ie:'Англия', 2958 re:'Англии', 2959 de:'Англии', 2960 ve:'Англию', 2961 te:'Англией', 2962 pe:'Англии', 2963 im:'Англии', 2964 rm:'Англий', 2965 dm:'Англиям', 2966 vm:'Англии', 2967 tm:'Англиями', 2968 pm:'Англиях', 2969 rod:1, 2970 skl:1, 2971 odu:0, 2972 sbs:1, 2973 }; 2974 lx['апрель']={ 2975 ie:'апрель', 2976 re:'апреля', 2977 de:'апрелю', 2978 ve:'апрель', 2979 te:'апрелем', 2980 pe:'апреле', 2981 im:'апрели', 2982 rm:'апрелей', 2983 dm:'апрелям', 2984 vm:'апрели', 2985 tm:'апрелями', 2986 pm:'апрелях', 2987 rod:0, 2988 skl:2, 2989 odu:0, 2990 }; 2991 lx['аспирантка']={ 2992 ie:'аспирантка', 2993 re:'аспирантки', 2994 de:'аспирантке', 2995 ve:'аспирантку', 2996 te:'аспиранткой', 2997 pe:'аспирантке', 2998 im:'аспирантки', 2999 rm:'аспиранток', 3000 dm:'аспиранткам', 3001 vm:'аспиранток', 3002 tm:'аспирантками', 3003 pm:'аспирантках', 3004 rod:1, 3005 skl:1, 3006 odu:0, 3007 }; 3008 lx['атомоход']={ 3009 ie:'атомоход', 3010 re:'атомохода', 3011 de:'атомоходу', 3012 ve:'атомоход', 3013 te:'атомоходом', 3014 pe:'атомоходе', 3015 im:'атомоходы', 3016 rm:'атомоходов', 3017 dm:'атомоходам', 3018 vm:'атомоходы', 3019 tm:'атомоходами', 3020 pm:'атомоходах', 3021 rod:0, 3022 skl:2, 3023 odu:0, 3024 }; 3025 lx['бадминтон']={ 3026 ie:'бадминтон', 3027 re:'бадминтона', 3028 de:'бадминтону', 3029 ve:'бадминтон', 3030 te:'бадминтоном', 3031 pe:'бадминтоне', 3032 im:'бадминтоны', 3033 rm:'бадминтонов', 3034 dm:'бадминтонам', 3035 vm:'бадминтоны', 3036 tm:'бадминтонами', 3037 pm:'бадминтонах', 3038 rod:0, 3039 skl:2, 3040 odu:0, 3041 }; 3042 lx['батон']={ 3043 ie:'батон', 3044 re:'батона', 3045 de:'батону', 3046 ve:'батон', 3047 te:'батоном', 3048 pe:'батоне', 3049 im:'батоны', 3050 rm:'батонов', 3051 dm:'батонам', 3052 vm:'батоны', 3053 tm:'батонами', 3054 pm:'батонах', 3055 rod:0, 3056 skl:2, 3057 odu:0, 3058 }; 3059 lx['Белоруссия']={ 3060 ie:'Белоруссия', 3061 re:'Белоруссии', 3062 de:'Белоруссии', 3063 ve:'Белоруссию', 3064 te:'Белоруссией', 3065 pe:'Белоруссии', 3066 im:'Белоруссии', 3067 rm:'Белоруссий', 3068 dm:'Белоруссиям', 3069 vm:'Белоруссии', 3070 tm:'Белоруссиями', 3071 pm:'Белоруссиях', 3072 rod:1, 3073 skl:1, 3074 odu:0, 3075 sbs:1, 3076 }; 3077 lx['Бельгия']={ 3078 ie:'Бельгия', 3079 re:'Бельгии', 3080 de:'Бельгии', 3081 ve:'Бельгию', 3082 te:'Бельгией', 3083 pe:'Бельгии', 3084 im:'Бельгии', 3085 rm:'Бельгий', 3086 dm:'Бельгиям', 3087 vm:'Бельгии', 3088 tm:'Бельгиями', 3089 pm:'Бельгиях', 3090 rod:1, 3091 skl:1, 3092 odu:0, 3093 }; 3094 lx['бензин']={ 3095 ie:'бензин', 3096 re:'бензина', 3097 de:'бензину', 3098 ve:'бензин', 3099 te:'бензином', 3100 pe:'бензине', 3101 im:'бензины', 3102 rm:'бензинов', 3103 dm:'бензинам', 3104 vm:'бензины', 3105 tm:'бензинами', 3106 pm:'бензинах', 3107 rod:0, 3108 skl:2, 3109 odu:0, 3110 }; 3111 lx['бетон']={ 3112 ie:'бетон', 3113 re:'бетона', 3114 de:'бетону', 3115 ve:'бетон', 3116 te:'бетоном', 3117 pe:'бетоне', 3118 im:'бетоны', 3119 rm:'бетонов', 3120 dm:'бетонам', 3121 vm:'бетоны', 3122 tm:'бетонами', 3123 pm:'бетонах', 3124 rod:0, 3125 skl:2, 3126 odu:0, 3127 }; 3128 lx['блондинка']={ 3129 ie:'блондинка', 3130 re:'блондинки', 3131 de:'блондинке', 3132 ve:'блондинку', 3133 te:'блондинкой', 3134 pe:'блондинке', 3135 im:'блондинки', 3136 rm:'блондинок', 3137 dm:'блондинкам', 3138 vm:'блондинок', 3139 tm:'блондинками', 3140 pm:'блондинках', 3141 rod:1, 3142 skl:1, 3143 odu:0, 3144 }; 3145 lx['Бразилия']={ 3146 ie:'Бразилия', 3147 re:'Бразилии', 3148 de:'Бразилии', 3149 ve:'Бразилию', 3150 te:'Бразилией', 3151 pe:'Бразилии', 3152 im:'Бразилии', 3153 rm:'Бразилий', 3154 dm:'Бразилиям', 3155 vm:'Бразилии', 3156 tm:'Бразилиями', 3157 pm:'Бразилиях', 3158 rod:1, 3159 skl:1, 3160 odu:0, 3161 }; 3162 lx['брус']={ 3163 ie:'брус', 3164 re:'бруса', 3165 de:'брусу', 3166 ve:'брус', 3167 te:'брусом', 3168 pe:'брусе', 3169 im:'брусья', 3170 rm:'брусьев', 3171 dm:'брусьям', 3172 vm:'брусья', 3173 tm:'брусьями', 3174 pm:'брусьях', 3175 rod:0, 3176 skl:2, 3177 odu:0, 3178 }; 3179 lx['булавка']={ 3180 ie:'булавка', 3181 re:'булавки', 3182 de:'булавке', 3183 ve:'булавку', 3184 te:'булавкой', 3185 pe:'булавке', 3186 im:'булавки', 3187 rm:'булавок', 3188 dm:'булавкам', 3189 vm:'булавки', 3190 tm:'булавками', 3191 pm:'булавках', 3192 rod:1, 3193 skl:1, 3194 odu:0, 3195 }; 3196 lx['бутерброд']={ 3197 ie:'бутерброд', 3198 re:'бутерброда', 3199 de:'бутерброду', 3200 ve:'бутерброд', 3201 te:'бутербродом', 3202 pe:'бутерброде', 3203 im:'бутерброды', 3204 rm:'бутербродов', 3205 dm:'бутербродам', 3206 vm:'бутерброды', 3207 tm:'бутербродами', 3208 pm:'бутербродах', 3209 rod:0, 3210 skl:2, 3211 odu:0, 3212 }; 3213 lx['Васильевна']={ 3214 ie:'Васильевна', 3215 re:'Васильевны', 3216 de:'Васильевне', 3217 ve:'Васильевну', 3218 te:'Васильевной', 3219 pe:'Васильевне', 3220 im:'Васильевны', 3221 rm:'Васильевн', 3222 dm:'Васильевнам', 3223 vm:'Васильевн', 3224 tm:'Васильевнами', 3225 pm:'Васильевнах', 3226 rod:1, 3227 skl:1, 3228 odu:0, 3229 }; 3230 lx['веб-дизайнер']={ 3231 ie:'веб-дизайнер', 3232 re:'веб-дизайнера', 3233 de:'веб-дизайнеру', 3234 ve:'веб-дизайнера', 3235 te:'веб-дизайнером', 3236 pe:'веб-дизайнере', 3237 im:'веб-дизайнеры', 3238 rm:'веб-дизайнеров', 3239 dm:'веб-дизайнерам', 3240 vm:'веб-дизайнеров', 3241 tm:'веб-дизайнерами', 3242 pm:'веб-дизайнерах', 3243 rod:0, 3244 skl:2, 3245 odu:0, 3246 }; 3247 lx['ведомство']={ 3248 ie:'ведомство', 3249 re:'ведомства', 3250 de:'ведомству', 3251 ve:'ведомство', 3252 te:'ведомством', 3253 pe:'ведомстве', 3254 im:'ведомства', 3255 rm:'ведомств', 3256 dm:'ведомствам', 3257 vm:'ведомства', 3258 tm:'ведомствами', 3259 pm:'ведомствах', 3260 rod:2, 3261 skl:2, 3262 odu:0, 3263 }; 3264 lx['велосипед']={ 3265 ie:'велосипед', 3266 re:'велосипеда', 3267 de:'велосипеду', 3268 ve:'велосипед', 3269 te:'велосипедом', 3270 pe:'велосипеде', 3271 im:'велосипеды', 3272 rm:'велосипедов', 3273 dm:'велосипедам', 3274 vm:'велосипеды', 3275 tm:'велосипедами', 3276 pm:'велосипедах', 3277 rod:0, 3278 skl:2, 3279 odu:0, 3280 }; 3281 lx['Венесуэла']={ 3282 ie:'Венесуэла', 3283 re:'Венесуэлы', 3284 de:'Венесуэле', 3285 ve:'Венесуэлу', 3286 te:'Венесуэлой', 3287 pe:'Венесуэле', 3288 im:'Венесуэлы', 3289 rm:'Венесуэл', 3290 dm:'Венесуэлам', 3291 vm:'Венесуэлы', 3292 tm:'Венесуэлами', 3293 pm:'Венесуэлах', 3294 rod:1, 3295 skl:1, 3296 odu:0, 3297 }; 3298 lx['Вероника']={ 3299 ie:'Вероника', 3300 re:'Вероники', 3301 de:'Веронике', 3302 ve:'Веронику', 3303 te:'Вероникой', 3304 pe:'Веронике', 3305 im:'Вероники', 3306 rm:'Вероник', 3307 dm:'Вероникам', 3308 vm:'Вероник', 3309 tm:'Верониками', 3310 pm:'Верониках', 3311 rod:1, 3312 skl:1, 3313 odu:0, 3314 }; 3315 lx['верста']={ 3316 ie:'верста', 3317 re:'версты', 3318 de:'версте', 3319 ve:'версту', 3320 te:'верстой', 3321 pe:'версте', 3322 im:'вёрсты', 3323 rm:'вёрст', 3324 dm:'вёрстам', 3325 vm:'вёрсты', 3326 tm:'вёрстами', 3327 pm:'вёрстах', 3328 rod:1, 3329 skl:1, 3330 odu:0, 3331 }; 3332 lx['витрина']={ 3333 ie:'витрина', 3334 re:'витрины', 3335 de:'витрине', 3336 ve:'витрину', 3337 te:'витриной', 3338 pe:'витрине', 3339 im:'витрины', 3340 rm:'витрин', 3341 dm:'витринам', 3342 vm:'витрины', 3343 tm:'витринами', 3344 pm:'витринах', 3345 rod:1, 3346 skl:1, 3347 odu:0, 3348 }; 3349 lx['вода']={ 3350 ie:'вода', 3351 re:'воды', 3352 de:'воде', 3353 ve:'воду', 3354 te:'водой', 3355 pe:'воде', 3356 im:'воды', 3357 rm:'вод', 3358 dm:'водам', 3359 vm:'воды', 3360 tm:'водами', 3361 pm:'водах', 3362 rod:1, 3363 skl:1, 3364 odu:0, 3365 }; 3366 lx['Воронеж']={ 3367 ie:'Воронеж', 3368 re:'Воронежа', 3369 de:'Воронежу', 3370 ve:'Воронеж', 3371 te:'Воронежом', 3372 pe:'Воронеже', 3373 im:'Воронежи', 3374 rm:'Воронежей', 3375 dm:'Воронежам', 3376 vm:'Воронежи', 3377 tm:'Воронежами', 3378 pm:'Воронежах', 3379 rod:0, 3380 skl:2, 3381 odu:0, 3382 sbs:1, 3383 chr:1, 3384 }; 3385 lx['воскресенье']={ 3386 ie:'воскресенье', 3387 re:'воскресенья', 3388 de:'воскресенью', 3389 ve:'воскресенье', 3390 te:'воскресеньем', 3391 pe:'воскресенье', 3392 im:'воскресенья', 3393 rm:'воскресений', 3394 dm:'воскресеньям', 3395 vm:'воскресенья', 3396 tm:'воскресеньями', 3397 pm:'воскресеньях', 3398 rod:2, 3399 skl:2, 3400 odu:0, 3401 }; 3402 lx['время']={ 3403 ie:'время', 3404 re:'времени', 3405 de:'времени', 3406 ve:'время', 3407 te:'временем', 3408 pe:'времени', 3409 im:'времена', 3410 rm:'времён', 3411 dm:'временам', 3412 vm:'времена', 3413 tm:'временами', 3414 pm:'временах', 3415 rod:0, 3416 skl:4, 3417 odu:0, 3418 }; 3419 lx['вторник']={ 3420 ie:'вторник', 3421 re:'вторника', 3422 de:'вторнику', 3423 ve:'вторник', 3424 te:'вторником', 3425 pe:'вторнике', 3426 im:'вторники', 3427 rm:'вторников', 3428 dm:'вторникам', 3429 vm:'вторники', 3430 tm:'вторниками', 3431 pm:'вторниках', 3432 rod:0, 3433 skl:2, 3434 odu:0, 3435 }; 3436 lx['выступление']={ 3437 ie:'выступление', 3438 re:'выступления', 3439 de:'выступлению', 3440 ve:'выступление', 3441 te:'выступлением', 3442 pe:'выступлении', 3443 im:'выступления', 3444 rm:'выступлений', 3445 dm:'выступлениям', 3446 vm:'выступления', 3447 tm:'выступлениями', 3448 pm:'выступлениях', 3449 rod:2, 3450 skl:2, 3451 odu:0, 3452 sbs:0, 3453 chr:1, 3454 rmn:'выступлениев', 3455 }; 3456 lx['газ']={ 3457 ie:'газ', 3458 re:'газа', 3459 de:'газу', 3460 ve:'газ', 3461 te:'газом', 3462 pe:'газе', 3463 im:'газы', 3464 rm:'газов', 3465 dm:'газам', 3466 vm:'газы', 3467 tm:'газами', 3468 pm:'газах', 3469 rod:0, 3470 skl:2, 3471 odu:0, 3472 }; 3473 lx['гараж']={ 3474 ie:'гараж', 3475 re:'гаража', 3476 de:'гаражу', 3477 ve:'гараж', 3478 te:'гаражом', 3479 pe:'гараже', 3480 im:'гаражы', 3481 rm:'гаражов', 3482 dm:'гаражам', 3483 vm:'гаражы', 3484 tm:'гаражами', 3485 pm:'гаражах', 3486 rod:0, 3487 skl:2, 3488 odu:0, 3489 }; 3490 lx['Германия']={ 3491 ie:'Германия', 3492 re:'Германии', 3493 de:'Германии', 3494 ve:'Германию', 3495 te:'Германией', 3496 pe:'Германии', 3497 im:'Германии', 3498 rm:'Германий', 3499 dm:'Германиям', 3500 vm:'Германии', 3501 tm:'Германиями', 3502 pm:'Германиях', 3503 rod:1, 3504 skl:1, 3505 odu:0, 3506 }; 3507 lx['гимнастика']={ 3508 ie:'гимнастика', 3509 re:'гимнастики', 3510 de:'гимнастике', 3511 ve:'гимнастику', 3512 te:'гимнастикой', 3513 pe:'гимнастике', 3514 im:'гимнастики', 3515 rm:'гимнастик', 3516 dm:'гимнастикам', 3517 vm:'гимнастики', 3518 tm:'гимнастиками', 3519 pm:'гимнастиках', 3520 rod:1, 3521 skl:1, 3522 odu:0, 3523 }; 3524 lx['город']={ 3525 ie:'город', 3526 re:'города', 3527 de:'городу', 3528 ve:'город', 3529 te:'городом', 3530 pe:'городе', 3531 im:'города', 3532 rm:'городов', 3533 dm:'городам', 3534 vm:'города', 3535 tm:'городами', 3536 pm:'городах', 3537 rod:0, 3538 skl:2, 3539 odu:0, 3540 }; 3541 lx['городок']={ 3542 ie:'городок', 3543 re:'городка', 3544 de:'городку', 3545 ve:'городок', 3546 te:'городком', 3547 pe:'городке', 3548 im:'городки', 3549 rm:'городков', 3550 dm:'городкам', 3551 vm:'городки', 3552 tm:'городками', 3553 pm:'городках', 3554 rod:0, 3555 skl:2, 3556 odu:0, 3557 }; 3558 lx['гравий']={ 3559 ie:'гравий', 3560 re:'гравия', 3561 de:'гравию', 3562 ve:'гравий', 3563 te:'гравием', 3564 pe:'гравии', 3565 im:'гравии', 3566 rm:'гравиев', 3567 dm:'гравиям', 3568 vm:'гравии', 3569 tm:'гравиями', 3570 pm:'гравиях', 3571 rod:0, 3572 skl:2, 3573 odu:0, 3574 }; 3575 lx['гранит']={ 3576 ie:'гранит', 3577 re:'гранита', 3578 de:'граниту', 3579 ve:'гранит', 3580 te:'гранитом', 3581 pe:'граните', 3582 im:'граниты', 3583 rm:'гранитов', 3584 dm:'гранитам', 3585 vm:'граниты', 3586 tm:'гранитами', 3587 pm:'гранитах', 3588 rod:0, 3589 skl:2, 3590 odu:0, 3591 }; 3592 lx['грузовик']={ 3593 ie:'грузовик', 3594 re:'грузовика', 3595 de:'грузовику', 3596 ve:'грузовик', 3597 te:'грузовиком', 3598 pe:'грузовике', 3599 im:'грузовики', 3600 rm:'грузовиков', 3601 dm:'грузовикам', 3602 vm:'грузовики', 3603 tm:'грузовиками', 3604 pm:'грузовиках', 3605 rod:0, 3606 skl:2, 3607 odu:0, 3608 }; 3609 lx['груша']={ 3610 ie:'груша', 3611 re:'груши', 3612 de:'груше', 3613 ve:'грушу', 3614 te:'грушой', 3615 pe:'груше', 3616 im:'груши', 3617 rm:'груш', 3618 dm:'грушам', 3619 vm:'груши', 3620 tm:'грушами', 3621 pm:'грушах', 3622 rod:1, 3623 skl:1, 3624 odu:0, 3625 }; 3626 lx['Дарья']={ 3627 ie:'Дарья', 3628 re:'Дарьи', 3629 de:'Дарье', 3630 ve:'Дарью', 3631 te:'Дарьей', 3632 pe:'Дарье', 3633 im:'Дарьи', 3634 rm:'Дарий', 3635 dm:'Дарьям', 3636 vm:'Дарьи', 3637 tm:'Дарьями', 3638 pm:'Дарьях', 3639 rod:1, 3640 skl:1, 3641 odu:0, 3642 }; 3643 lx['дача']={ 3644 ie:'дача', 3645 re:'дачи', 3646 de:'даче', 3647 ve:'дачу', 3648 te:'дачей', 3649 pe:'даче', 3650 im:'дачи', 3651 rm:'дач', 3652 dm:'дачам', 3653 vm:'дачи', 3654 tm:'дачами', 3655 pm:'дачах', 3656 rod:1, 3657 skl:1, 3658 odu:0, 3659 }; 3660 lx['декада']={ 3661 ie:'декада', 3662 re:'декады', 3663 de:'декаде', 3664 ve:'декаду', 3665 te:'декадой', 3666 pe:'декаде', 3667 im:'декады', 3668 rm:'декад', 3669 dm:'декадам', 3670 vm:'декады', 3671 tm:'декадами', 3672 pm:'декадах', 3673 rod:1, 3674 skl:1, 3675 odu:0, 3676 }; 3677 lx['дельтоид']={ 3678 ie:'дельтоид', 3679 re:'дельтоида', 3680 de:'дельтоиду', 3681 ve:'дельтоид', 3682 te:'дельтоидом', 3683 pe:'дельтоиде', 3684 im:'дельтоиды', 3685 rm:'дельтоидов', 3686 dm:'дельтоидам', 3687 vm:'дельтоиды', 3688 tm:'дельтоидами', 3689 pm:'дельтоидах', 3690 rod:0, 3691 skl:2, 3692 odu:0, 3693 }; 3694 lx['день']={ 3695 ie:'день', 3696 re:'дня', 3697 de:'дню', 3698 ve:'день', 3699 te:'днём', 3700 pe:'дне', 3701 im:'дни', 3702 rm:'дней', 3703 dm:'дням', 3704 vm:'дни', 3705 tm:'днями', 3706 pm:'днях', 3707 rod:0, 3708 skl:2, 3709 odu:0, 3710 }; 3711 lx['деревня']={ 3712 ie:'деревня', 3713 re:'деревни', 3714 de:'деревне', 3715 ve:'деревню', 3716 te:'деревней', 3717 pe:'деревне', 3718 im:'деревни', 3719 rm:'деревень', 3720 dm:'деревням', 3721 vm:'деревни', 3722 tm:'деревнями', 3723 pm:'деревнях', 3724 rod:1, 3725 skl:1, 3726 odu:0, 3727 }; 3728 lx['деталь']={ 3729 ie:'деталь', 3730 re:'детали', 3731 de:'детали', 3732 ve:'деталь', 3733 te:'деталью', 3734 pe:'детали', 3735 im:'детали', 3736 rm:'деталей', 3737 dm:'деталям', 3738 vm:'детали', 3739 tm:'деталями', 3740 pm:'деталях', 3741 rod:1, 3742 skl:3, 3743 odu:0, 3744 }; 3745 lx['дециметр']={ 3746 ie:'дециметр', 3747 re:'дециметра', 3748 de:'дециметру', 3749 ve:'дециметр', 3750 te:'дециметром', 3751 pe:'дециметре', 3752 im:'дециметры', 3753 rm:'дециметров', 3754 dm:'дециметрам', 3755 vm:'дециметры', 3756 tm:'дециметрами', 3757 pm:'дециметрах', 3758 rod:0, 3759 skl:2, 3760 odu:0, 3761 skr:'дм', 3762 }; 3763 lx['диагональ']={ 3764 ie:'диагональ', 3765 re:'диагонали', 3766 de:'диагонали', 3767 ve:'диагональ', 3768 te:'диагональю', 3769 pe:'диагонали', 3770 im:'диагонали', 3771 rm:'диагоналей', 3772 dm:'диагоналям', 3773 vm:'диагонали', 3774 tm:'диагоналями', 3775 pm:'диагоналях', 3776 rod:1, 3777 skl:3, 3778 odu:0, 3779 }; 3780 lx['дизель']={ 3781 ie:'дизель', 3782 re:'дизеля', 3783 de:'дизелю', 3784 ve:'дизель', 3785 te:'дизелем', 3786 pe:'дизеле', 3787 im:'дизели', 3788 rm:'дизелей', 3789 dm:'дизелям', 3790 vm:'дизели', 3791 tm:'дизелями', 3792 pm:'дизелях', 3793 rod:0, 3794 skl:2, 3795 odu:0, 3796 }; 3797 lx['доллар']={ 3798 ie:'доллар', 3799 re:'доллара', 3800 de:'доллару', 3801 ve:'доллар', 3802 te:'долларом', 3803 pe:'долларе', 3804 im:'доллары', 3805 rm:'долларов', 3806 dm:'долларам', 3807 vm:'доллары', 3808 tm:'долларами', 3809 pm:'долларах', 3810 rod:0, 3811 skl:2, 3812 odu:0, 3813 }; 3814 lx['дом']={ 3815 ie:'дом', 3816 re:'дома', 3817 de:'дому', 3818 ve:'дом', 3819 te:'домом', 3820 pe:'доме', 3821 im:'дома', 3822 rm:'домов', 3823 dm:'домам', 3824 vm:'дома', 3825 tm:'домами', 3826 pm:'домах', 3827 rod:0, 3828 skl:2, 3829 odu:0, 3830 }; 3831 lx['домик']={ 3832 ie:'домик', 3833 re:'домика', 3834 de:'домику', 3835 ve:'домик', 3836 te:'домиком', 3837 pe:'домике', 3838 im:'домики', 3839 rm:'домиков', 3840 dm:'домикам', 3841 vm:'домики', 3842 tm:'домиками', 3843 pm:'домиках', 3844 rod:0, 3845 skl:2, 3846 odu:0, 3847 }; 3848 lx['дробь']={ 3849 ie:'дробь', 3850 re:'дроби', 3851 de:'дроби', 3852 ve:'дробь', 3853 te:'дробью', 3854 pe:'дроби', 3855 im:'дроби', 3856 rm:'дробей', 3857 dm:'дробям', 3858 vm:'дроби', 3859 tm:'дробями', 3860 pm:'дробях', 3861 rod:1, 3862 skl:3, 3863 odu:0, 3864 chr:1, 3865 }; 3866 lx['евро']={ 3867 ie:'евро', 3868 re:'евро', 3869 de:'евро', 3870 ve:'евро', 3871 te:'евро', 3872 pe:'евро', 3873 im:'евро', 3874 rm:'евро', 3875 dm:'евро', 3876 vm:'евро', 3877 tm:'евро', 3878 pm:'евро', 3879 rod:2, 3880 skl:0, 3881 odu:0, 3882 }; 3883 lx['Елена']={ 3884 ie:'Елена', 3885 re:'Елены', 3886 de:'Елене', 3887 ve:'Елену', 3888 te:'Еленой', 3889 pe:'Елене', 3890 im:'Елены', 3891 rm:'Елен', 3892 dm:'Еленам', 3893 vm:'Елен', 3894 tm:'Еленами', 3895 pm:'Еленах', 3896 rod:1, 3897 skl:1, 3898 odu:0, 3899 }; 3900 lx['жидкость']={ 3901 ie:'жидкость', 3902 re:'жидкости', 3903 de:'жидкости', 3904 ve:'жидкость', 3905 te:'жидкостью', 3906 pe:'жидкости', 3907 im:'жидкости', 3908 rm:'жидкостей', 3909 dm:'жидкостям', 3910 vm:'жидкости', 3911 tm:'жидкостями', 3912 pm:'жидкостях', 3913 rod:1, 3914 skl:3, 3915 odu:0, 3916 }; 3917 lx['задание']={ 3918 ie:'задание', 3919 re:'задания', 3920 de:'заданию', 3921 ve:'задание', 3922 te:'заданием', 3923 pe:'задании', 3924 im:'задания', 3925 rm:'заданий', 3926 dm:'заданиям', 3927 vm:'задания', 3928 tm:'заданиями', 3929 pm:'заданиях', 3930 rod:2, 3931 skl:2, 3932 odu:0, 3933 }; 3934 lx['"Запорожец"']={ 3935 ie:'"Запорожец"', 3936 re:'"Запорожца"', 3937 de:'"Запорожцу"', 3938 ve:'"Запорожец"', 3939 te:'"Запорожцем"', 3940 pe:'"Запорожце"', 3941 im:'"Запорожцы"', 3942 rm:'"Запорожцев"', 3943 dm:'"Запорожцам"', 3944 vm:'"Запорожцы"', 3945 tm:'"Запорожцами"', 3946 pm:'"Запорожцах"', 3947 rod:0, 3948 skl:2, 3949 odu:0, 3950 }; 3951 lx['значение']={ 3952 ie:'значение', 3953 re:'значения', 3954 de:'значению', 3955 ve:'значение', 3956 te:'значением', 3957 pe:'значении', 3958 im:'значения', 3959 rm:'значений', 3960 dm:'значениям', 3961 vm:'значения', 3962 tm:'значениями', 3963 pm:'значениях', 3964 rod:2, 3965 skl:2, 3966 odu:0, 3967 }; 3968 lx['Ивановна']={ 3969 ie:'Ивановна', 3970 re:'Ивановны', 3971 de:'Ивановне', 3972 ve:'Ивановну', 3973 te:'Ивановной', 3974 pe:'Ивановне', 3975 im:'Ивановны', 3976 rm:'Ивановн', 3977 dm:'Ивановнам', 3978 vm:'Ивановн', 3979 tm:'Ивановнами', 3980 pm:'Ивановнах', 3981 rod:1, 3982 skl:1, 3983 odu:0, 3984 }; 3985 lx['известняк']={ 3986 ie:'известняк', 3987 re:'известняка', 3988 de:'известняку', 3989 ve:'известняк', 3990 te:'известняком', 3991 pe:'известняке', 3992 im:'известняки', 3993 rm:'известняков', 3994 dm:'известнякам', 3995 vm:'известняки', 3996 tm:'известняками', 3997 pm:'известняках', 3998 rod:0, 3999 skl:2, 4000 odu:0, 4001 }; 4002 lx['Израиль']={ 4003 ie:'Израиль', 4004 re:'Израиля', 4005 de:'Израилю', 4006 ve:'Израиль', 4007 te:'Израилем', 4008 pe:'Израиле', 4009 im:'Израили', 4010 rm:'Израилей', 4011 dm:'Израилям', 4012 vm:'Израили', 4013 tm:'Израилями', 4014 pm:'Израилях', 4015 rod:0, 4016 skl:2, 4017 odu:0, 4018 }; 4019 lx['инноград']={ 4020 ie:'инноград', 4021 re:'иннограда', 4022 de:'иннограду', 4023 ve:'инноград', 4024 te:'инноградом', 4025 pe:'иннограде', 4026 im:'иннограды', 4027 rm:'инноградов', 4028 dm:'инноградам', 4029 vm:'иннограды', 4030 tm:'инноградами', 4031 pm:'инноградах', 4032 rod:0, 4033 skl:2, 4034 odu:0, 4035 }; 4036 lx['интервал']={ 4037 ie:'интервал', 4038 re:'интервала', 4039 de:'интервалу', 4040 ve:'интервал', 4041 te:'интервалом', 4042 pe:'интервале', 4043 im:'интервалы', 4044 rm:'интервалов', 4045 dm:'интервалам', 4046 vm:'интервалы', 4047 tm:'интервалами', 4048 pm:'интервалах', 4049 rod:0, 4050 skl:2, 4051 odu:0, 4052 }; 4053 lx['июнь']={ 4054 ie:'июнь', 4055 re:'июня', 4056 de:'июню', 4057 ve:'июнь', 4058 te:'июнем', 4059 pe:'июне', 4060 im:'июни', 4061 rm:'июней', 4062 dm:'июням', 4063 vm:'июни', 4064 tm:'июнями', 4065 pm:'июнях', 4066 rod:0, 4067 skl:2, 4068 odu:0, 4069 }; 4070 lx['июль']={ 4071 ie:'июль', 4072 re:'июля', 4073 de:'июлю', 4074 ve:'июль', 4075 te:'июлем', 4076 pe:'июле', 4077 im:'июли', 4078 rm:'июлей', 4079 dm:'июлям', 4080 vm:'июли', 4081 tm:'июлями', 4082 pm:'июлях', 4083 rod:0, 4084 skl:2, 4085 odu:0, 4086 }; 4087 lx['кабельтов']={ 4088 ie:'кабельтов', 4089 re:'кабельтова', 4090 de:'кабельтову', 4091 ve:'кабельтов', 4092 te:'кабельтовым', 4093 pe:'кабельтовом', 4094 im:'кабельтовы', 4095 rm:'кабельтовых', 4096 dm:'кабельтовым', 4097 vm:'кабельтовых', 4098 tm:'кабельтовыми', 4099 pm:'кабельтовых', 4100 rod:0, 4101 skl:2, 4102 odu:0, 4103 }; 4104 lx['Казань']={ 4105 ie:'Казань', 4106 re:'Казани', 4107 de:'Казани', 4108 ve:'Казань', 4109 te:'Казанью', 4110 pe:'Казани', 4111 im:'Казани', 4112 rm:'Казаней', 4113 dm:'Казаням', 4114 vm:'Казани', 4115 tm:'Казанями', 4116 pm:'Казанях', 4117 rod:1, 4118 skl:3, 4119 odu:0, 4120 }; 4121 lx['кальций']={ 4122 ie:'кальций', 4123 re:'кальция', 4124 de:'кальцию', 4125 ve:'кальций', 4126 te:'кальцием', 4127 pe:'кальции', 4128 im:'кальции', 4129 rm:'кальциев', 4130 dm:'кальциям', 4131 vm:'кальции', 4132 tm:'кальциями', 4133 pm:'кальциях', 4134 rod:0, 4135 skl:2, 4136 odu:0, 4137 }; 4138 lx['камень']={ 4139 ie:'камень', 4140 re:'камня', 4141 de:'камню', 4142 ve:'камень', 4143 te:'камнем', 4144 pe:'камне', 4145 im:'камни', 4146 rm:'камней', 4147 dm:'камням', 4148 vm:'камни', 4149 tm:'камнями', 4150 pm:'камнях', 4151 rod:0, 4152 skl:2, 4153 odu:0, 4154 }; 4155 lx['канцелярия']={ 4156 ie:'канцелярия', 4157 re:'канцелярии', 4158 de:'канцелярии', 4159 ve:'канцелярию', 4160 te:'канцелярией', 4161 pe:'канцелярии', 4162 im:'канцелярии', 4163 rm:'канцелярий', 4164 dm:'канцеляриям', 4165 vm:'канцелярии', 4166 tm:'канцеляриями', 4167 pm:'канцеляриях', 4168 rod:1, 4169 skl:1, 4170 odu:0, 4171 }; 4172 lx['катет']={ 4173 ie:'катет', 4174 re:'катета', 4175 de:'катету', 4176 ve:'катет', 4177 te:'катетом', 4178 pe:'катете', 4179 im:'катеты', 4180 rm:'катетов', 4181 dm:'катетам', 4182 vm:'катеты', 4183 tm:'катетами', 4184 pm:'катетах', 4185 rod:0, 4186 skl:2, 4187 odu:0, 4188 }; 4189 lx['квадрат']={ 4190 ie:'квадрат', 4191 re:'квадрата', 4192 de:'квадрату', 4193 ve:'квадрат', 4194 te:'квадратом', 4195 pe:'квадрате', 4196 im:'квадраты', 4197 rm:'квадратов', 4198 dm:'квадратам', 4199 vm:'квадраты', 4200 tm:'квадратами', 4201 pm:'квадратах', 4202 rod:0, 4203 skl:2, 4204 odu:0, 4205 }; 4206 lx['керосин']={ 4207 ie:'керосин', 4208 re:'керосина', 4209 de:'керосину', 4210 ve:'керосин', 4211 te:'керосином', 4212 pe:'керосине', 4213 im:'керосины', 4214 rm:'керосинов', 4215 dm:'керосинам', 4216 vm:'керосины', 4217 tm:'керосинами', 4218 pm:'керосинах', 4219 rod:0, 4220 skl:2, 4221 odu:0, 4222 }; 4223 lx['километр']={ 4224 ie:'километр', 4225 re:'километра', 4226 de:'километру', 4227 ve:'километр', 4228 te:'километром', 4229 pe:'километре', 4230 im:'километры', 4231 rm:'километров', 4232 dm:'километрам', 4233 vm:'километры', 4234 tm:'километрами', 4235 pm:'километрах', 4236 rod:0, 4237 skl:2, 4238 odu:0, 4239 skr:'км', 4240 }; 4241 lx['Китай']={ 4242 ie:'Китай', 4243 re:'Китая', 4244 de:'Китаю', 4245 ve:'Китай', 4246 te:'Китаем', 4247 pe:'Китае', 4248 im:'Китаи', 4249 rm:'Китаев', 4250 dm:'Китаям', 4251 vm:'Китаи', 4252 tm:'Китаями', 4253 pm:'Китаях', 4254 rod:0, 4255 skl:2, 4256 odu:0, 4257 }; 4258 lx['клавиатура']={ 4259 ie:'клавиатура', 4260 re:'клавиатуры', 4261 de:'клавиатуре', 4262 ve:'клавиатуру', 4263 te:'клавиатурой', 4264 pe:'клавиатуре', 4265 im:'клавиатуры', 4266 rm:'клавиатур', 4267 dm:'клавиатурам', 4268 vm:'клавиатуры', 4269 tm:'клавиатурами', 4270 pm:'клавиатурах', 4271 rod:1, 4272 skl:1, 4273 odu:0, 4274 sbs:0, 4275 chr:1, 4276 }; 4277 lx['компакт-диск']={ 4278 ie:'компакт-диск', 4279 re:'компакт-диска', 4280 de:'компакт-диску', 4281 ve:'компакт-диск', 4282 te:'компакт-диском', 4283 pe:'компакт-диске', 4284 im:'компакт-диски', 4285 rm:'компакт-дисков', 4286 dm:'компакт-дискам', 4287 vm:'компакт-диски', 4288 tm:'компакт-дисками', 4289 pm:'компакт-дисках', 4290 rod:0, 4291 skl:2, 4292 odu:0, 4293 }; 4294 lx['конструкция']={ 4295 ie:'конструкция', 4296 re:'конструкции', 4297 de:'конструкции', 4298 ve:'конструкцию', 4299 te:'конструкцией', 4300 pe:'конструкции', 4301 im:'конструкции', 4302 rm:'конструкций', 4303 dm:'конструкциям', 4304 vm:'конструкции', 4305 tm:'конструкциями', 4306 pm:'конструкциях', 4307 rod:1, 4308 skl:1, 4309 odu:0, 4310 }; 4311 lx['копейка']={ 4312 ie:'копейка', 4313 re:'копейки', 4314 de:'копейке', 4315 ve:'копейку', 4316 te:'копейкой', 4317 pe:'копейке', 4318 im:'копейки', 4319 rm:'копеек', 4320 dm:'копейкам', 4321 vm:'копейки', 4322 tm:'копейками', 4323 pm:'копейках', 4324 rod:1, 4325 skl:1, 4326 odu:0, 4327 sbs:0, 4328 chr:1, 4329 }; 4330 lx['корабль']={ 4331 ie:'корабль', 4332 re:'корабля', 4333 de:'кораблю', 4334 ve:'корабль', 4335 te:'кораблём', 4336 pe:'корабле', 4337 im:'корабли', 4338 rm:'кораблей', 4339 dm:'кораблям', 4340 vm:'корабли', 4341 tm:'кораблями', 4342 pm:'кораблях', 4343 rod:0, 4344 skl:2, 4345 odu:0, 4346 }; 4347 lx['Красноярск']={ 4348 ie:'Красноярск', 4349 re:'Красноярска', 4350 de:'Красноярску', 4351 ve:'Красноярск', 4352 te:'Красноярском', 4353 pe:'Красноярске', 4354 im:'Красноярски', 4355 rm:'Красноярсков', 4356 dm:'Красноярскам', 4357 vm:'Красноярски', 4358 tm:'Красноярсками', 4359 pm:'Красноярсках', 4360 rod:0, 4361 skl:2, 4362 odu:0, 4363 }; 4364 lx['Кристина']={ 4365 ie:'Кристина', 4366 re:'Кристины', 4367 de:'Кристине', 4368 ve:'Кристину', 4369 te:'Кристиной', 4370 pe:'Кристине', 4371 im:'Кристины', 4372 rm:'Кристин', 4373 dm:'Кристинам', 4374 vm:'Кристин', 4375 tm:'Кристинами', 4376 pm:'Кристинах', 4377 rod:1, 4378 skl:1, 4379 odu:0, 4380 }; 4381 lx['Куба']={ 4382 ie:'Куба', 4383 re:'Кубы', 4384 de:'Кубе', 4385 ve:'Кубу', 4386 te:'Кубой', 4387 pe:'Кубе', 4388 im:'Кубы', 4389 rm:'Куб', 4390 dm:'Кубам', 4391 vm:'Кубы', 4392 tm:'Кубами', 4393 pm:'Кубах', 4394 rod:1, 4395 skl:1, 4396 odu:0, 4397 }; 4398 lx['кубометр']={ 4399 ie:'кубометр', 4400 re:'кубометра', 4401 de:'кубометру', 4402 ve:'кубометр', 4403 te:'кубометром', 4404 pe:'кубометре', 4405 im:'кубометры', 4406 rm:'кубометров', 4407 dm:'кубометрам', 4408 vm:'кубометры', 4409 tm:'кубометрами', 4410 pm:'кубометрах', 4411 rod:0, 4412 skl:2, 4413 odu:0, 4414 }; 4415 lx['литр']={ 4416 ie:'литр', 4417 re:'литра', 4418 de:'литру', 4419 ve:'литр', 4420 te:'литром', 4421 pe:'литре', 4422 im:'литры', 4423 rm:'литров', 4424 dm:'литрам', 4425 vm:'литры', 4426 tm:'литрами', 4427 pm:'литрах', 4428 rod:0, 4429 skl:2, 4430 odu:0, 4431 }; 4432 lx['луч']={ 4433 ie:'луч', 4434 re:'луча', 4435 de:'лучу', 4436 ve:'луч', 4437 te:'лучом', 4438 pe:'луче', 4439 im:'лучи', 4440 rm:'лучей', 4441 dm:'лучам', 4442 vm:'лучи', 4443 tm:'лучами', 4444 pm:'лучах', 4445 rod:0, 4446 skl:2, 4447 odu:0, 4448 }; 4449 lx['Магадан']={ 4450 ie:'Магадан', 4451 re:'Магадана', 4452 de:'Магадану', 4453 ve:'Магадан', 4454 te:'Магаданом', 4455 pe:'Магадане', 4456 im:'Магаданы', 4457 rm:'Магаданов', 4458 dm:'Магаданам', 4459 vm:'Магаданы', 4460 tm:'Магаданами', 4461 pm:'Магаданах', 4462 rod:0, 4463 skl:2, 4464 odu:0, 4465 }; 4466 lx['магазин']={ 4467 ie:'магазин', 4468 re:'магазина', 4469 de:'магазину', 4470 ve:'магазин', 4471 te:'магазином', 4472 pe:'магазине', 4473 im:'магазины', 4474 rm:'магазинов', 4475 dm:'магазинам', 4476 vm:'магазины', 4477 tm:'магазинами', 4478 pm:'магазинах', 4479 rod:0, 4480 skl:2, 4481 odu:0, 4482 }; 4483 lx['магия']={ 4484 ie:'магия', 4485 re:'магии', 4486 de:'магии', 4487 ve:'магию', 4488 te:'магией', 4489 pe:'магии', 4490 im:'магии', 4491 rm:'магий', 4492 dm:'магиям', 4493 vm:'магии', 4494 tm:'магиями', 4495 pm:'магиях', 4496 rod:1, 4497 skl:1, 4498 odu:0, 4499 }; 4500 lx['май']={ 4501 ie:'май', 4502 re:'мая', 4503 de:'маю', 4504 ve:'май', 4505 te:'маем', 4506 pe:'мае', 4507 im:'маи', 4508 rm:'маев', 4509 dm:'маям', 4510 vm:'маи', 4511 tm:'маями', 4512 pm:'маях', 4513 rod:0, 4514 skl:2, 4515 odu:0, 4516 }; 4517 lx['Мария']={ 4518 ie:'Мария', 4519 re:'Марии', 4520 de:'Марии', 4521 ve:'Марию', 4522 te:'Марией', 4523 pe:'Марии', 4524 im:'Марии', 4525 rm:'Марий', 4526 dm:'Мариям', 4527 vm:'Марии', 4528 tm:'Мариями', 4529 pm:'Мариях', 4530 rod:1, 4531 skl:1, 4532 odu:0, 4533 }; 4534 lx['март']={ 4535 ie:'март', 4536 re:'марта', 4537 de:'марту', 4538 ve:'март', 4539 te:'мартом', 4540 pe:'марте', 4541 im:'марты', 4542 rm:'мартов', 4543 dm:'мартам', 4544 vm:'марты', 4545 tm:'мартами', 4546 pm:'мартах', 4547 rod:0, 4548 skl:2, 4549 odu:0, 4550 }; 4551 lx['матрёшка']={ 4552 ie:'матрёшка', 4553 re:'матрёшки', 4554 de:'матрёшке', 4555 ve:'матрёшку', 4556 te:'матрёшкой', 4557 pe:'матрёшке', 4558 im:'матрёшки', 4559 rm:'матрёшек', 4560 dm:'матрёшкам', 4561 vm:'матрёшки', 4562 tm:'матрёшками', 4563 pm:'матрёшках', 4564 rod:1, 4565 skl:1, 4566 odu:0, 4567 }; 4568 lx['Мексика']={ 4569 ie:'Мексика', 4570 re:'Мексики', 4571 de:'Мексике', 4572 ve:'Мексику', 4573 te:'Мексикой', 4574 pe:'Мексике', 4575 im:'Мексики', 4576 rm:'Мексик', 4577 dm:'Мексикам', 4578 vm:'Мексики', 4579 tm:'Мексиками', 4580 pm:'Мексиках', 4581 rod:1, 4582 skl:1, 4583 odu:0, 4584 }; 4585 lx['меню']={ 4586 ie:'меню', 4587 re:'меню', 4588 de:'меню', 4589 ve:'меню', 4590 te:'меню', 4591 pe:'меню', 4592 im:'меню', 4593 rm:'меню', 4594 dm:'меню', 4595 vm:'меню', 4596 tm:'меню', 4597 pm:'меню', 4598 rod:2, 4599 skl:0, 4600 odu:0, 4601 }; 4602 lx['месяц']={ 4603 ie:'месяц', 4604 re:'месяца', 4605 de:'месяцу', 4606 ve:'месяц', 4607 te:'месяцем', 4608 pe:'месяце', 4609 im:'месяцы', 4610 rm:'месяцев', 4611 dm:'месяцам', 4612 vm:'месяцы', 4613 tm:'месяцами', 4614 pm:'месяцах', 4615 rod:0, 4616 skl:2, 4617 odu:0, 4618 }; 4619 lx['метр']={ 4620 ie:'метр', 4621 re:'метра', 4622 de:'метру', 4623 ve:'метр', 4624 te:'метром', 4625 pe:'метре', 4626 im:'метры', 4627 rm:'метров', 4628 dm:'метрам', 4629 vm:'метры', 4630 tm:'метрами', 4631 pm:'метрах', 4632 rod:0, 4633 skl:2, 4634 odu:0, 4635 skr:'м', 4636 }; 4637 lx['мешок']={ 4638 ie:'мешок', 4639 re:'мешка', 4640 de:'мешку', 4641 ve:'мешок', 4642 te:'мешком', 4643 pe:'мешке', 4644 im:'мешки', 4645 rm:'мешков', 4646 dm:'мешкам', 4647 vm:'мешки', 4648 tm:'мешками', 4649 pm:'мешках', 4650 rod:0, 4651 skl:2, 4652 odu:0, 4653 }; 4654 lx['миллиметр']={ 4655 ie:'миллиметр', 4656 re:'миллиметра', 4657 de:'миллиметру', 4658 ve:'миллиметр', 4659 te:'миллиметром', 4660 pe:'миллиметре', 4661 im:'миллиметры', 4662 rm:'миллиметров', 4663 dm:'миллиметрам', 4664 vm:'миллиметры', 4665 tm:'миллиметрами', 4666 pm:'миллиметрах', 4667 rod:0, 4668 skl:2, 4669 odu:0, 4670 skr:'мм', 4671 }; 4672 lx['министерство']={ 4673 ie:'министерство', 4674 re:'министерства', 4675 de:'министерству', 4676 ve:'министерство', 4677 te:'министерством', 4678 pe:'министерстве', 4679 im:'министерства', 4680 rm:'министерств', 4681 dm:'министерствам', 4682 vm:'министерства', 4683 tm:'министерствами', 4684 pm:'министерствах', 4685 rod:2, 4686 skl:2, 4687 odu:0, 4688 }; 4689 lx['Минобрнауки']={ 4690 ie:'Минобрнауки', 4691 re:'Минобрнауки', 4692 de:'Минобрнауки', 4693 ve:'Минобрнауки', 4694 te:'Минобрнауки', 4695 pe:'Минобрнауки', 4696 im:'Минобрнауки', 4697 rm:'Минобрнауки', 4698 dm:'Минобрнауки', 4699 vm:'Минобрнауки', 4700 tm:'Минобрнауки', 4701 pm:'Минобрнауки', 4702 rod:2, 4703 skl:0, 4704 odu:0, 4705 }; 4706 lx['минута']={ 4707 ie:'минута', 4708 re:'минуты', 4709 de:'минуте', 4710 ve:'минуту', 4711 te:'минутой', 4712 pe:'минуте', 4713 im:'минуты', 4714 rm:'минут', 4715 dm:'минутам', 4716 vm:'минуты', 4717 tm:'минутами', 4718 pm:'минутах', 4719 rod:1, 4720 skl:1, 4721 odu:0, 4722 }; 4723 lx['Москва']={ 4724 ie:'Москва', 4725 re:'Москвы', 4726 de:'Москве', 4727 ve:'Москву', 4728 te:'Москвой', 4729 pe:'Москве', 4730 im:'Москвы', 4731 rm:'Москв', 4732 dm:'Москвам', 4733 vm:'Москвы', 4734 tm:'Москвами', 4735 pm:'Москвах', 4736 rod:1, 4737 skl:1, 4738 odu:0, 4739 sbs:1, 4740 chr:1, 4741 }; 4742 lx['"Москвич"']={ 4743 ie:'"Москвич"', 4744 re:'"Москвича"', 4745 de:'"Москвичу"', 4746 ve:'"Москвич"', 4747 te:'"Москвичом"', 4748 pe:'"Москвиче"', 4749 im:'"Москвичи"', 4750 rm:'"Москвичей"', 4751 dm:'"Москвичам"', 4752 vm:'"Москвичи"', 4753 tm:'"Москвичами"', 4754 pm:'"Москвичах"', 4755 rod:0, 4756 skl:2, 4757 odu:0, 4758 }; 4759 lx['наукоград']={ 4760 ie:'наукоград', 4761 re:'наукограда', 4762 de:'наукограду', 4763 ve:'наукоград', 4764 te:'наукоградом', 4765 pe:'наукограде', 4766 im:'наукограды', 4767 rm:'наукоградов', 4768 dm:'наукоградам', 4769 vm:'наукограды', 4770 tm:'наукоградами', 4771 pm:'наукоградах', 4772 rod:0, 4773 skl:2, 4774 odu:0, 4775 }; 4776 lx['неделя']={ 4777 ie:'неделя', 4778 re:'недели', 4779 de:'неделе', 4780 ve:'неделю', 4781 te:'неделей', 4782 pe:'неделе', 4783 im:'недели', 4784 rm:'недель', 4785 dm:'неделям', 4786 vm:'недели', 4787 tm:'неделями', 4788 pm:'неделях', 4789 rod:1, 4790 skl:1, 4791 odu:0, 4792 }; 4793 lx['Николаевна']={ 4794 ie:'Николаевна', 4795 re:'Николаевны', 4796 de:'Николаевне', 4797 ve:'Николаевну', 4798 te:'Николаевной', 4799 pe:'Николаевне', 4800 im:'Николаевны', 4801 rm:'Николаевн', 4802 dm:'Николаевнам', 4803 vm:'Николаевн', 4804 tm:'Николаевнами', 4805 pm:'Николаевнах', 4806 rod:1, 4807 skl:1, 4808 odu:0, 4809 }; 4810 lx['ноябрь']={ 4811 ie:'ноябрь', 4812 re:'ноября', 4813 de:'ноябрю', 4814 ve:'ноябрь', 4815 te:'ноябрём', 4816 pe:'ноябре', 4817 im:'ноябри', 4818 rm:'ноябрей', 4819 dm:'ноябрям', 4820 vm:'ноябри', 4821 tm:'ноябрями', 4822 pm:'ноябрях', 4823 rod:0, 4824 skl:2, 4825 odu:0, 4826 }; 4827 lx['октябрь']={ 4828 ie:'октябрь', 4829 re:'октября', 4830 de:'октябрю', 4831 ve:'октябрь', 4832 te:'октябрём', 4833 pe:'октябре', 4834 im:'октябри', 4835 rm:'октябрей', 4836 dm:'октябрям', 4837 vm:'октябри', 4838 tm:'октябрями', 4839 pm:'октябрях', 4840 rod:0, 4841 skl:2, 4842 odu:0, 4843 }; 4844 lx['Олеся']={ 4845 ie:'Олеся', 4846 re:'Олеси', 4847 de:'Олесе', 4848 ve:'Олесю', 4849 te:'Олесей', 4850 pe:'Олесе', 4851 im:'Олеси', 4852 rm:'Олесь', 4853 dm:'Олесям', 4854 vm:'Олесь', 4855 tm:'Олесями', 4856 pm:'Олесях', 4857 rod:1, 4858 skl:1, 4859 odu:0, 4860 }; 4861 lx['Ольга']={ 4862 ie:'Ольга', 4863 re:'Ольги', 4864 de:'Ольге', 4865 ve:'Ольгу', 4866 te:'Ольгой', 4867 pe:'Ольге', 4868 im:'Ольги', 4869 rm:'Ольг', 4870 dm:'Ольгам', 4871 vm:'Ольг', 4872 tm:'Ольгами', 4873 pm:'Ольгах', 4874 rod:1, 4875 skl:1, 4876 odu:0, 4877 }; 4878 lx['отрезок']={ 4879 ie:'отрезок', 4880 re:'отрезка', 4881 de:'отрезку', 4882 ve:'отрезок', 4883 te:'отрезком', 4884 pe:'отрезке', 4885 im:'отрезки', 4886 rm:'отрезков', 4887 dm:'отрезкам', 4888 vm:'отрезки', 4889 tm:'отрезками', 4890 pm:'отрезках', 4891 rod:0, 4892 skl:2, 4893 odu:0, 4894 }; 4895 lx['офис']={ 4896 ie:'офис', 4897 re:'офиса', 4898 de:'офису', 4899 ve:'офис', 4900 te:'офисом', 4901 pe:'офисе', 4902 im:'офисы', 4903 rm:'офисов', 4904 dm:'офисам', 4905 vm:'офисы', 4906 tm:'офисами', 4907 pm:'офисах', 4908 rod:0, 4909 skl:2, 4910 odu:0, 4911 }; 4912 lx['параллелограмм']={ 4913 ie:'параллелограмм', 4914 re:'параллелограмма', 4915 de:'параллелограмму', 4916 ve:'параллелограмм', 4917 te:'параллелограммом', 4918 pe:'параллелограмме', 4919 im:'параллелограммы', 4920 rm:'параллелограммов', 4921 dm:'параллелограммам', 4922 vm:'параллелограммы', 4923 tm:'параллелограммами', 4924 pm:'параллелограммах', 4925 rod:0, 4926 skl:2, 4927 odu:0, 4928 }; 4929 lx['пароход']={ 4930 ie:'пароход', 4931 re:'парохода', 4932 de:'пароходу', 4933 ve:'пароход', 4934 te:'пароходом', 4935 pe:'пароходе', 4936 im:'пароходы', 4937 rm:'пароходов', 4938 dm:'пароходам', 4939 vm:'пароходы', 4940 tm:'пароходами', 4941 pm:'пароходах', 4942 rod:0, 4943 skl:2, 4944 odu:0, 4945 }; 4946 lx['ПГТ']={ 4947 ie:'ПГТ', 4948 re:'ПГТ', 4949 de:'ПГТ', 4950 ve:'ПГТ', 4951 te:'ПГТ', 4952 pe:'ПГТ', 4953 im:'ПГТ', 4954 rm:'ПГТ', 4955 dm:'ПГТ', 4956 vm:'ПГТ', 4957 tm:'ПГТ', 4958 pm:'ПГТ', 4959 rod:0, 4960 skl:0, 4961 odu:0, 4962 }; 4963 lx['пенобетон']={ 4964 ie:'пенобетон', 4965 re:'пенобетона', 4966 de:'пенобетону', 4967 ve:'пенобетон', 4968 te:'пенобетоном', 4969 pe:'пенобетоне', 4970 im:'пенобетоны', 4971 rm:'пенобетонов', 4972 dm:'пенобетонам', 4973 vm:'пенобетоны', 4974 tm:'пенобетонами', 4975 pm:'пенобетонах', 4976 rod:0, 4977 skl:2, 4978 odu:0, 4979 }; 4980 lx['песок']={ 4981 ie:'песок', 4982 re:'песка', 4983 de:'песку', 4984 ve:'песок', 4985 te:'песком', 4986 pe:'песке', 4987 im:'пески', 4988 rm:'песков', 4989 dm:'пескам', 4990 vm:'пески', 4991 tm:'песками', 4992 pm:'песках', 4993 rod:0, 4994 skl:2, 4995 odu:0, 4996 }; 4997 lx['песчаник']={ 4998 ie:'песчаник', 4999 re:'песчаника', 5000 de:'песчанику', 5001 ve:'песчаник', 5002 te:'песчаником', 5003 pe:'песчанике', 5004 im:'песчаники', 5005 rm:'песчаников', 5006 dm:'песчаникам', 5007 vm:'песчаники', 5008 tm:'песчаниками', 5009 pm:'песчаниках', 5010 rod:0, 5011 skl:2, 5012 odu:0, 5013 }; 5014 lx['Петровна']={ 5015 ie:'Петровна', 5016 re:'Петровны', 5017 de:'Петровне', 5018 ve:'Петровну', 5019 te:'Петровной', 5020 pe:'Петровне', 5021 im:'Петровны', 5022 rm:'Петровн', 5023 dm:'Петровнам', 5024 vm:'Петровн', 5025 tm:'Петровнами', 5026 pm:'Петровнах', 5027 rod:1, 5028 skl:1, 5029 odu:0, 5030 }; 5031 lx['пирожок']={ 5032 ie:'пирожок', 5033 re:'пирожка', 5034 de:'пирожку', 5035 ve:'пирожок', 5036 te:'пирожком', 5037 pe:'пирожке', 5038 im:'пирожки', 5039 rm:'пирожков', 5040 dm:'пирожкам', 5041 vm:'пирожки', 5042 tm:'пирожами', 5043 pm:'пирожах', 5044 rod:0, 5045 skl:2, 5046 odu:0, 5047 }; 5048 lx['поезд']={ 5049 ie:'поезд', 5050 re:'поезда', 5051 de:'поезду', 5052 ve:'поезд', 5053 te:'поездом', 5054 pe:'поезде', 5055 im:'поезды', 5056 rm:'поездов', 5057 dm:'поездам', 5058 vm:'поезды', 5059 tm:'поездами', 5060 pm:'поездах', 5061 rod:0, 5062 skl:2, 5063 odu:0, 5064 }; 5065 lx['полуинтервал']={ 5066 ie:'полуинтервал', 5067 re:'полуинтервала', 5068 de:'полуинтервалу', 5069 ve:'полуинтервал', 5070 te:'полуинтервалом', 5071 pe:'полуинтервале', 5072 im:'полуинтервалы', 5073 rm:'полуинтервалов', 5074 dm:'полуинтервалам', 5075 vm:'полуинтервалы', 5076 tm:'полуинтервалами', 5077 pm:'полуинтервалах', 5078 rod:0, 5079 skl:2, 5080 odu:0, 5081 }; 5082 lx['Польша']={ 5083 ie:'Польша', 5084 re:'Польши', 5085 de:'Польше', 5086 ve:'Польшу', 5087 te:'Польшой', 5088 pe:'Польше', 5089 im:'Польши', 5090 rm:'Польш', 5091 dm:'Польшам', 5092 vm:'Польши', 5093 tm:'Польшами', 5094 pm:'Польшах', 5095 rod:1, 5096 skl:1, 5097 odu:0, 5098 }; 5099 lx['понедельник']={ 5100 ie:'понедельник', 5101 re:'понедельника', 5102 de:'понедельнику', 5103 ve:'понедельник', 5104 te:'понедельником', 5105 pe:'понедельнике', 5106 im:'понедельники', 5107 rm:'понедельников', 5108 dm:'понедельникам', 5109 vm:'понедельники', 5110 tm:'понедельниками', 5111 pm:'понедельниках', 5112 rod:0, 5113 skl:2, 5114 odu:0, 5115 }; 5116 lx['посёлок']={ 5117 ie:'посёлок', 5118 re:'посёлка', 5119 de:'посёлку', 5120 ve:'посёлок', 5121 te:'посёлком', 5122 pe:'посёлке', 5123 im:'посёлки', 5124 rm:'посёлков', 5125 dm:'посёлкам', 5126 vm:'посёлки', 5127 tm:'посёлками', 5128 pm:'посёлках', 5129 rod:0, 5130 skl:2, 5131 odu:0, 5132 }; 5133 lx['программистка']={ 5134 ie:'программистка', 5135 re:'программистки', 5136 de:'программистке', 5137 ve:'программистку', 5138 te:'программисткой', 5139 pe:'программистке', 5140 im:'программистки', 5141 rm:'программисток', 5142 dm:'программисткам', 5143 vm:'программисток', 5144 tm:'программистками', 5145 pm:'программистках', 5146 rod:1, 5147 skl:1, 5148 odu:0, 5149 }; 5150 lx['промежуток']={ 5151 ie:'промежуток', 5152 re:'промежутка', 5153 de:'промежутку', 5154 ve:'промежуток', 5155 te:'промежутком', 5156 pe:'промежутке', 5157 im:'промежутки', 5158 rm:'промежутков', 5159 dm:'промежуткам', 5160 vm:'промежутки', 5161 tm:'промежутками', 5162 pm:'промежутках', 5163 rod:0, 5164 skl:2, 5165 odu:0, 5166 }; 5167 lx['прямоугольник']={ 5168 ie:'прямоугольник', 5169 re:'прямоугольника', 5170 de:'прямоугольнику', 5171 ve:'прямоугольник', 5172 te:'прямоугольником', 5173 pe:'прямоугольнике', 5174 im:'прямоугольники', 5175 rm:'прямоугольников', 5176 dm:'прямоугольникам', 5177 vm:'прямоугольники', 5178 tm:'прямоугольниками', 5179 pm:'прямоугольниках', 5180 rod:0, 5181 skl:2, 5182 odu:0, 5183 }; 5184 lx['пункт']={ 5185 ie:'пункт', 5186 re:'пункта', 5187 de:'пункту', 5188 ve:'пункт', 5189 te:'пунктом', 5190 pe:'пункте', 5191 im:'пункты', 5192 rm:'пунктов', 5193 dm:'пунктам', 5194 vm:'пункты', 5195 tm:'пунктами', 5196 pm:'пунктах', 5197 rod:0, 5198 skl:2, 5199 odu:0, 5200 }; 5201 lx['путь']={ 5202 ie:'путь', 5203 re:'пути', 5204 de:'пути', 5205 ve:'путь', 5206 te:'путём', 5207 pe:'пути', 5208 im:'пути', 5209 rm:'путей', 5210 dm:'путям', 5211 vm:'пути', 5212 tm:'путями', 5213 pm:'путях', 5214 rod:0, 5215 skl:2, 5216 odu:0, 5217 }; 5218 lx['пятница']={ 5219 ie:'пятница', 5220 re:'пятницы', 5221 de:'пятнице', 5222 ve:'пятницу', 5223 te:'пятницей', 5224 pe:'пятнице', 5225 im:'пятницы', 5226 rm:'пятниц', 5227 dm:'пятницам', 5228 vm:'пятницы', 5229 tm:'пятницами', 5230 pm:'пятницах', 5231 rod:1, 5232 skl:1, 5233 odu:0, 5234 }; 5235 lx['раствор']={ 5236 ie:'раствор', 5237 re:'раствора', 5238 de:'раствору', 5239 ve:'раствор', 5240 te:'раствором', 5241 pe:'растворе', 5242 im:'растворы', 5243 rm:'растворов', 5244 dm:'растворам', 5245 vm:'растворы', 5246 tm:'растворами', 5247 pm:'растворах', 5248 rod:0, 5249 skl:2, 5250 odu:0, 5251 }; 5252 lx['ребёнок']={ 5253 ie:'ребёнок', 5254 re:'ребёнка', 5255 de:'ребёнку', 5256 ve:'ребёнка', 5257 te:'ребёнком', 5258 pe:'ребёнке', 5259 im:'ребята', 5260 rm:'ребят', 5261 dm:'ребятам', 5262 vm:'ребят', 5263 tm:'ребятами', 5264 pm:'ребятах', 5265 rod:0, 5266 skl:2, 5267 odu:1, 5268 sbs:0, 5269 chr:1, 5270 }; 5271 lx['ромб']={ 5272 ie:'ромб', 5273 re:'ромба', 5274 de:'ромбу', 5275 ve:'ромб', 5276 te:'ромбом', 5277 pe:'ромбе', 5278 im:'ромбы', 5279 rm:'ромбов', 5280 dm:'ромбам', 5281 vm:'ромбы', 5282 tm:'ромбами', 5283 pm:'ромбах', 5284 rod:0, 5285 skl:2, 5286 odu:0, 5287 }; 5288 lx['Рособрнадзор']={ 5289 ie:'Рособрнадзор', 5290 re:'Рособрнадзора', 5291 de:'Рособрнадзору', 5292 ve:'Рособрнадзор', 5293 te:'Рособрнадзором', 5294 pe:'Рособрнадзоре', 5295 im:'Рособрнадзоры', 5296 rm:'Рособрнадзоров', 5297 dm:'Рособрнадзорам', 5298 vm:'Рособрнадзоры', 5299 tm:'Рособрнадзорами', 5300 pm:'Рособрнадзорах', 5301 rod:0, 5302 skl:2, 5303 odu:0, 5304 }; 5305 lx['Россия']={ 5306 ie:'Россия', 5307 re:'России', 5308 de:'России', 5309 ve:'Россию', 5310 te:'Россией', 5311 pe:'России', 5312 im:'России', 5313 rm:'Россий', 5314 dm:'Россиям', 5315 vm:'России', 5316 tm:'Россиями', 5317 pm:'Россиях', 5318 rod:1, 5319 skl:1, 5320 odu:0, 5321 }; 5322 lx['ртуть']={ 5323 ie:'ртуть', 5324 re:'ртути', 5325 de:'ртути', 5326 ve:'ртуть', 5327 te:'ртутью', 5328 pe:'ртути', 5329 im:'ртути', 5330 rm:'ртутей', 5331 dm:'ртутям', 5332 vm:'ртути', 5333 tm:'ртутями', 5334 pm:'ртутях', 5335 rod:1, 5336 skl:3, 5337 odu:0, 5338 }; 5339 lx['рубль']={ 5340 ie:'рубль', 5341 re:'рубля', 5342 de:'рублю', 5343 ve:'рубль', 5344 te:'рублём', 5345 pe:'рубле', 5346 im:'рубли', 5347 rm:'рублей', 5348 dm:'рублям', 5349 vm:'рубли', 5350 tm:'рублями', 5351 pm:'рублях', 5352 rod:0, 5353 skl:2, 5354 odu:0, 5355 }; 5356 lx['рука']={ 5357 ie:'рука', 5358 re:'руки', 5359 de:'руке', 5360 ve:'руку', 5361 te:'рукой', 5362 pe:'руке', 5363 im:'руки', 5364 rm:'рук', 5365 dm:'рукам', 5366 vm:'руки', 5367 tm:'руками', 5368 pm:'руках', 5369 rod:1, 5370 skl:1, 5371 odu:0, 5372 }; 5373 lx['ручка']={ 5374 ie:'ручка', 5375 re:'ручки', 5376 de:'ручке', 5377 ve:'ручку', 5378 te:'ручкой', 5379 pe:'ручке', 5380 im:'ручки', 5381 rm:'ручек', 5382 dm:'ручкам', 5383 vm:'ручки', 5384 tm:'ручками', 5385 pm:'ручках', 5386 rod:1, 5387 skl:1, 5388 odu:0, 5389 }; 5390 lx['Санкт-Петербург']={ 5391 ie:'Санкт-Петербург', 5392 re:'Санкт-Петербурга', 5393 de:'Санкт-Петербургу', 5394 ve:'Санкт-Петербург', 5395 te:'Санкт-Петербургом', 5396 pe:'Санкт-Петербурге', 5397 im:'Санкт-Петербурги', 5398 rm:'Санкт-Петербургов', 5399 dm:'Санкт-Петербургам', 5400 vm:'Санкт-Петербурги', 5401 tm:'Санкт-Петербургами', 5402 pm:'Санкт-Петербургах', 5403 rod:0, 5404 skl:2, 5405 odu:0, 5406 }; 5407 lx['сантиметр']={ 5408 ie:'сантиметр', 5409 re:'сантиметра', 5410 de:'сантиметру', 5411 ve:'сантиметр', 5412 te:'сантиметром', 5413 pe:'сантиметре', 5414 im:'сантиметры', 5415 rm:'сантиметров', 5416 dm:'сантиметрам', 5417 vm:'сантиметры', 5418 tm:'сантиметрами', 5419 pm:'сантиметрах', 5420 rod:0, 5421 skl:2, 5422 odu:0, 5423 skr:'см', 5424 }; 5425 lx['секретариат']={ 5426 ie:'секретариат', 5427 re:'секретариата', 5428 de:'секретариату', 5429 ve:'секретариат', 5430 te:'секретариатом', 5431 pe:'секретариате', 5432 im:'секретариаты', 5433 rm:'секретариатов', 5434 dm:'секретариатам', 5435 vm:'секретариаты', 5436 tm:'секретариатами', 5437 pm:'секретариатах', 5438 rod:0, 5439 skl:2, 5440 odu:0, 5441 }; 5442 lx['село']={ 5443 ie:'село', 5444 re:'села', 5445 de:'селу', 5446 ve:'село', 5447 te:'селом', 5448 pe:'селе', 5449 im:'сёла', 5450 rm:'сёл', 5451 dm:'сёлам', 5452 vm:'сёла', 5453 tm:'сёлами', 5454 pm:'сёлах', 5455 rod:2, 5456 skl:2, 5457 odu:0, 5458 }; 5459 lx['Семилуки']={ 5460 ie:'Семилуки', 5461 re:'Семилук', 5462 de:'Семилукам', 5463 ve:'Семилуки', 5464 te:'Семилуками', 5465 pe:'Семилуках', 5466 im:'Семилуки', 5467 rm:'Семилук', 5468 dm:'Семилукам', 5469 vm:'Семилуки', 5470 tm:'Семилуками', 5471 pm:'Семилуках', 5472 rod:3, 5473 skl:2, 5474 odu:0, 5475 }; 5476 lx['сентябрь']={ 5477 ie:'сентябрь', 5478 re:'сентября', 5479 de:'сентябрю', 5480 ve:'сентябрь', 5481 te:'сентябре', 5482 pe:'сентябре', 5483 im:'сентябри', 5484 rm:'сентябрей', 5485 dm:'сентябрям', 5486 vm:'сентябри', 5487 tm:'сентябрями', 5488 pm:'сентябрях', 5489 rod:0, 5490 skl:2, 5491 odu:0, 5492 }; 5493 lx['Сербия']={ 5494 ie:'Сербия', 5495 re:'Сербии', 5496 de:'Сербии', 5497 ve:'Сербию', 5498 te:'Сербией', 5499 pe:'Сербии', 5500 im:'Сербии', 5501 rm:'Сербий', 5502 dm:'Сербиям', 5503 vm:'Сербии', 5504 tm:'Сербиями', 5505 pm:'Сербиях', 5506 rod:1, 5507 skl:1, 5508 odu:0, 5509 }; 5510 lx['Сергеевна']={ 5511 ie:'Сергеевна', 5512 re:'Сергеевны', 5513 de:'Сергеевне', 5514 ve:'Сергеевну', 5515 te:'Сергеевной', 5516 pe:'Сергеевне', 5517 im:'Сергеевны', 5518 rm:'Сергеевн', 5519 dm:'Сергеевнам', 5520 vm:'Сергеевн', 5521 tm:'Сергеевнами', 5522 pm:'Сергеевнах', 5523 rod:1, 5524 skl:1, 5525 odu:0, 5526 }; 5527 lx['склонение']={ 5528 ie:'склонение', 5529 re:'склонения', 5530 de:'склонению', 5531 ve:'склонение', 5532 te:'склонением', 5533 pe:'склонении', 5534 im:'склонения', 5535 rm:'склонений', 5536 dm:'склонениям', 5537 vm:'склонения', 5538 tm:'склонениями', 5539 pm:'склонениях', 5540 rod:2, 5541 skl:2, 5542 odu:0, 5543 sbs:0, 5544 chr:1, 5545 }; 5546 lx['Словакия']={ 5547 ie:'Словакия', 5548 re:'Словакии', 5549 de:'Словакии', 5550 ve:'Словакию', 5551 te:'Словакией', 5552 pe:'Словакии', 5553 im:'Словакии', 5554 rm:'Словакий', 5555 dm:'Словакиям', 5556 vm:'Словакии', 5557 tm:'Словакиями', 5558 pm:'Словакиях', 5559 rod:1, 5560 skl:1, 5561 odu:0, 5562 }; 5563 lx['словарь']={ 5564 ie:'словарь', 5565 re:'словаря', 5566 de:'словарю', 5567 ve:'словарь', 5568 te:'словарем', 5569 pe:'словаре', 5570 im:'словари', 5571 rm:'словарей', 5572 dm:'словарям', 5573 vm:'словари', 5574 tm:'словарями', 5575 pm:'словарях', 5576 rod:0, 5577 skl:2, 5578 odu:0, 5579 chr:1, 5580 }; 5581 lx['Словения']={ 5582 ie:'Словения', 5583 re:'Словении', 5584 de:'Словении', 5585 ve:'Словению', 5586 te:'Словенией', 5587 pe:'Словении', 5588 im:'Словении', 5589 rm:'Словений', 5590 dm:'Словениям', 5591 vm:'Словении', 5592 tm:'Словениями', 5593 pm:'Словениях', 5594 rod:1, 5595 skl:1, 5596 odu:0, 5597 }; 5598 lx['слово']={ 5599 ie:'слово', 5600 re:'слова', 5601 de:'слову', 5602 ve:'слове', 5603 te:'словом', 5604 pe:'слове', 5605 im:'слова', 5606 rm:'слов', 5607 dm:'словам', 5608 vm:'слова', 5609 tm:'словами', 5610 pm:'словах', 5611 rod:2, 5612 skl:2, 5613 odu:0, 5614 chr:1, 5615 }; 5616 lx['солярка']={ 5617 ie:'солярка', 5618 re:'солярки', 5619 de:'солярке', 5620 ve:'солярку', 5621 te:'соляркой', 5622 pe:'солярке', 5623 im:'солярки', 5624 rm:'солярк', 5625 dm:'соляркам', 5626 vm:'солярки', 5627 tm:'солярками', 5628 pm:'солярках', 5629 rod:1, 5630 skl:1, 5631 odu:0, 5632 }; 5633 lx['Сочи']={ 5634 ie:'Сочи', 5635 re:'Сочи', 5636 de:'Сочи', 5637 ve:'Сочи', 5638 te:'Сочи', 5639 pe:'Сочи', 5640 im:'Сочи', 5641 rm:'Сочи', 5642 dm:'Сочи', 5643 vm:'Сочи', 5644 tm:'Сочи', 5645 pm:'Сочи', 5646 rod:1, 5647 skl:0, 5648 odu:0, 5649 }; 5650 lx['среда']={ 5651 ie:'среда', 5652 re:'среды', 5653 de:'среде', 5654 ve:'среду', 5655 te:'средой', 5656 pe:'среде', 5657 im:'среды', 5658 rm:'сред', 5659 dm:'средам', 5660 vm:'среды', 5661 tm:'средами', 5662 pm:'средах', 5663 rod:1, 5664 skl:1, 5665 odu:0, 5666 }; 5667 lx['сторона']={ 5668 ie:'сторона', 5669 re:'стороны', 5670 de:'стороне', 5671 ve:'сторону', 5672 te:'стороной', 5673 pe:'стороне', 5674 im:'стороны', 5675 rm:'сторон', 5676 dm:'сторонам', 5677 vm:'стороны', 5678 tm:'сторонами', 5679 pm:'сторонах', 5680 rod:1, 5681 skl:1, 5682 odu:0, 5683 }; 5684 lx['студентка']={ 5685 ie:'студентка', 5686 re:'студентки', 5687 de:'студентке', 5688 ve:'студентку', 5689 te:'студенткой', 5690 pe:'студентке', 5691 im:'студентки', 5692 rm:'студенток', 5693 dm:'студенткам', 5694 vm:'студенток', 5695 tm:'студентками', 5696 pm:'студентках', 5697 rod:1, 5698 skl:1, 5699 odu:0, 5700 }; 5701 lx['суббота']={ 5702 ie:'суббота', 5703 re:'субботы', 5704 de:'субботе', 5705 ve:'субботу', 5706 te:'субботой', 5707 pe:'субботе', 5708 im:'субботы', 5709 rm:'суббот', 5710 dm:'субботам', 5711 vm:'субботы', 5712 tm:'субботами', 5713 pm:'субботах', 5714 rod:1, 5715 skl:1, 5716 odu:0, 5717 }; 5718 lx['сувенир']={ 5719 ie:'сувенир', 5720 re:'сувенира', 5721 de:'сувениру', 5722 ve:'сувенир', 5723 te:'сувениром', 5724 pe:'сувенире', 5725 im:'сувениры', 5726 rm:'сувениров', 5727 dm:'сувенирам', 5728 vm:'сувениры', 5729 tm:'сувенирами', 5730 pm:'сувенирах', 5731 rod:0, 5732 skl:2, 5733 odu:0, 5734 }; 5735 lx['сырок']={ 5736 ie:'сырок', 5737 re:'сырка', 5738 de:'сырку', 5739 ve:'сырок', 5740 te:'сырком', 5741 pe:'сырке', 5742 im:'сырки', 5743 rm:'сырков', 5744 dm:'сыркам', 5745 vm:'сырки', 5746 tm:'сырками', 5747 pm:'сырках', 5748 rod:0, 5749 skl:2, 5750 odu:0, 5751 }; 5752 lx['теплоход']={ 5753 ie:'теплоход', 5754 re:'теплохода', 5755 de:'теплоходу', 5756 ve:'теплоход', 5757 te:'теплоходом', 5758 pe:'теплоходе', 5759 im:'теплоходы', 5760 rm:'теплоходов', 5761 dm:'теплоходам', 5762 vm:'теплоходы', 5763 tm:'теплоходами', 5764 pm:'теплоходах', 5765 rod:0, 5766 skl:2, 5767 odu:0, 5768 }; 5769 lx['террариум']={ 5770 ie:'террариум', 5771 re:'террариума', 5772 de:'террариуму', 5773 ve:'террариум', 5774 te:'террариумом', 5775 pe:'террариуме', 5776 im:'террариумы', 5777 rm:'террариумов', 5778 dm:'террариумам', 5779 vm:'террариумы', 5780 tm:'террариумами', 5781 pm:'террариумах', 5782 rod:0, 5783 skl:2, 5784 odu:0, 5785 }; 5786 lx['тетрадь']={ 5787 ie:'тетрадь', 5788 re:'тетради', 5789 de:'тетради', 5790 ve:'тетрадь', 5791 te:'тетрадью', 5792 pe:'тетради', 5793 im:'тетради', 5794 rm:'тетрадей', 5795 dm:'тетрадям', 5796 vm:'тетради', 5797 tm:'тетрадями', 5798 pm:'тетрадях', 5799 rod:1, 5800 skl:3, 5801 odu:0, 5802 }; 5803 lx['тонна']={ 5804 ie:'тонна', 5805 re:'тонны', 5806 de:'тонне', 5807 ve:'тонну', 5808 te:'тонной', 5809 pe:'тонне', 5810 im:'тонны', 5811 rm:'тонн', 5812 dm:'тоннам', 5813 vm:'тонны', 5814 tm:'тоннами', 5815 pm:'тоннах', 5816 rod:1, 5817 skl:1, 5818 odu:0, 5819 }; 5820 lx['топливо']={ 5821 ie:'топливо', 5822 re:'топлива', 5823 de:'топливу', 5824 ve:'топливо', 5825 te:'топливом', 5826 pe:'топливе', 5827 im:'топливо', 5828 rm:'топлива', 5829 dm:'топливу', 5830 vm:'топливо', 5831 tm:'топливом', 5832 pm:'топливе', 5833 rod:2, 5834 skl:2, 5835 odu:0, 5836 }; 5837 lx['точка']={ 5838 ie:'точка', 5839 re:'точки', 5840 de:'точке', 5841 ve:'точку', 5842 te:'точкой', 5843 pe:'точке', 5844 im:'точки', 5845 rm:'точек', 5846 dm:'точкам', 5847 vm:'точки', 5848 tm:'точками', 5849 pm:'точках', 5850 rod:1, 5851 skl:1, 5852 odu:0, 5853 }; 5854 lx['трапеция']={ 5855 ie:'трапеция', 5856 re:'трапеции', 5857 de:'трапеции', 5858 ve:'трапецию', 5859 te:'трапецией', 5860 pe:'трапеции', 5861 im:'трапеции', 5862 rm:'трапеций', 5863 dm:'трапециям', 5864 vm:'трапеции', 5865 tm:'трапециями', 5866 pm:'трапециях', 5867 rod:1, 5868 skl:1, 5869 odu:0, 5870 }; 5871 lx['учебник']={ 5872 ie:'учебник', 5873 re:'учебника', 5874 de:'учебнику', 5875 ve:'учебник', 5876 te:'учебником', 5877 pe:'учебнике', 5878 im:'учебники', 5879 rm:'учебников', 5880 dm:'учебникам', 5881 vm:'учебники', 5882 tm:'учебниками', 5883 pm:'учебниках', 5884 rod:0, 5885 skl:2, 5886 odu:0, 5887 }; 5888 lx['февраль']={ 5889 ie:'февраль', 5890 re:'февраля', 5891 de:'февралю', 5892 ve:'февраль', 5893 te:'февралём', 5894 pe:'феврале', 5895 im:'феврали', 5896 rm:'февралей', 5897 dm:'февралям', 5898 vm:'феврали', 5899 tm:'февралями', 5900 pm:'февралях', 5901 rod:0, 5902 skl:2, 5903 odu:0, 5904 }; 5905 lx['Фёдоровна']={ 5906 ie:'Фёдоровна', 5907 re:'Фёдоровны', 5908 de:'Фёдоровне', 5909 ve:'Фёдоровну', 5910 te:'Фёдоровной', 5911 pe:'Фёдоровне', 5912 im:'Фёдоровны', 5913 rm:'Фёдоровн', 5914 dm:'Фёдоровнам', 5915 vm:'Фёдоровн', 5916 tm:'Фёдоровнами', 5917 pm:'Фёдоровнах', 5918 rod:1, 5919 skl:1, 5920 odu:0, 5921 }; 5922 lx['флэшка']={ 5923 ie:'флэшка', 5924 re:'флэшки', 5925 de:'флэшке', 5926 ve:'флэшку', 5927 te:'флэшкой', 5928 pe:'флэшке', 5929 im:'флэшки', 5930 rm:'флэшек', 5931 dm:'флэшкам', 5932 vm:'флэшки', 5933 tm:'флэшками', 5934 pm:'флэшках', 5935 rod:1, 5936 skl:1, 5937 odu:0, 5938 }; 5939 lx['фонарик']={ 5940 ie:'фонарик', 5941 re:'фонарика', 5942 de:'фонарику', 5943 ve:'фонарик', 5944 te:'фонариком', 5945 pe:'фонарике', 5946 im:'фонарики', 5947 rm:'фонариков', 5948 dm:'фонарикам', 5949 vm:'фонарики', 5950 tm:'фонариками', 5951 pm:'фонариках', 5952 rod:0, 5953 skl:2, 5954 odu:0, 5955 }; 5956 lx['форма']={ 5957 ie:'форма', 5958 re:'формы', 5959 de:'форме', 5960 ve:'форму', 5961 te:'формой', 5962 pe:'форме', 5963 im:'формы', 5964 rm:'форм', 5965 dm:'формам', 5966 vm:'формы', 5967 tm:'формами', 5968 pm:'формах', 5969 rod:1, 5970 skl:1, 5971 odu:0, 5972 chr:1, 5973 }; 5974 lx['фурлонг']={ 5975 ie:'фурлонг', 5976 re:'фурлонга', 5977 de:'фурлонгу', 5978 ve:'фурлонг', 5979 te:'фурлонгом', 5980 pe:'фурлонге', 5981 im:'фурлонги', 5982 rm:'фурлонгов', 5983 dm:'фурлонгам', 5984 vm:'фурлонги', 5985 tm:'фурлонгами', 5986 pm:'фурлонгах', 5987 rod:0, 5988 skl:2, 5989 odu:0, 5990 }; 5991 lx['Хабаровск']={ 5992 ie:'Хабаровск', 5993 re:'Хабаровска', 5994 de:'Хабаровску', 5995 ve:'Хабаровск', 5996 te:'Хабаровском', 5997 pe:'Хабаровске', 5998 im:'Хабаровски', 5999 rm:'Хабаровсков', 6000 dm:'Хабаровскам', 6001 vm:'Хабаровски', 6002 tm:'Хабаровсками', 6003 pm:'Хабаровсках', 6004 rod:0, 6005 skl:2, 6006 odu:0, 6007 sbs:1, 6008 chr:1, 6009 }; 6010 lx['хутор']={ 6011 ie:'хутор', 6012 re:'хутора', 6013 de:'хутору', 6014 ve:'хутор', 6015 te:'хутором', 6016 pe:'хуторе', 6017 im:'хутора', 6018 rm:'хуторов', 6019 dm:'хуторам', 6020 vm:'хутора', 6021 tm:'хуторами', 6022 pm:'хуторах', 6023 rod:0, 6024 skl:2, 6025 odu:0, 6026 }; 6027 lx['час']={ 6028 ie:'час', 6029 re:'часа', 6030 de:'часу', 6031 ve:'час', 6032 te:'часом', 6033 pe:'часе', 6034 im:'часы', 6035 rm:'часов', 6036 dm:'часам', 6037 vm:'часы', 6038 tm:'часами', 6039 pm:'часах', 6040 rod:0, 6041 skl:2, 6042 odu:0, 6043 }; 6044 lx['четверг']={ 6045 ie:'четверг', 6046 re:'четверга', 6047 de:'четвергу', 6048 ve:'четверг', 6049 te:'четвергом', 6050 pe:'четверге', 6051 im:'четверги', 6052 rm:'четвергов', 6053 dm:'четвергам', 6054 vm:'четверги', 6055 tm:'четвергами', 6056 pm:'четвергах', 6057 rod:0, 6058 skl:2, 6059 odu:0, 6060 }; 6061 lx['четырёхугольник']={ 6062 ie:'четырёхугольник', 6063 re:'четырёхугольника', 6064 de:'четырёхугольнику', 6065 ve:'четырёхугольник', 6066 te:'четырёхугольником', 6067 pe:'четырёхугольнике', 6068 im:'четырёхугольники', 6069 rm:'четырёхугольников', 6070 dm:'четырёхугольникам', 6071 vm:'четырёхугольники', 6072 tm:'четырёхугольниками', 6073 pm:'четырёхугольниках', 6074 rod:0, 6075 skl:2, 6076 odu:0, 6077 }; 6078 lx['Чехия']={ 6079 ie:'Чехия', 6080 re:'Чехии', 6081 de:'Чехии', 6082 ve:'Чехию', 6083 te:'Чехией', 6084 pe:'Чехии', 6085 im:'Чехии', 6086 rm:'Чехий', 6087 dm:'Чехиям', 6088 vm:'Чехии', 6089 tm:'Чехиями', 6090 pm:'Чехиях', 6091 rod:1, 6092 skl:1, 6093 odu:0, 6094 }; 6095 lx['число']={ 6096 ie:'число', 6097 re:'числа', 6098 de:'числу', 6099 ve:'число', 6100 te:'числом', 6101 pe:'числе', 6102 im:'числа', 6103 rm:'чисел', 6104 dm:'числам', 6105 vm:'числа', 6106 tm:'числами', 6107 pm:'числах', 6108 rod:2, 6109 skl:2, 6110 odu:0, 6111 chr:1, 6112 }; 6113 lx['шахматы']={ 6114 ie:'шахматы', 6115 re:'шахмат', 6116 de:'шахматам', 6117 ve:'шахматы', 6118 te:'шахматами', 6119 pe:'шахматах', 6120 im:'шахматы', 6121 rm:'шахмат', 6122 dm:'шахматам', 6123 vm:'шахматы', 6124 tm:'шахматами', 6125 pm:'шахматах', 6126 rod:0, 6127 skl:2, 6128 odu:0, 6129 }; 6130 lx['шашки']={ 6131 ie:'шашки', 6132 re:'шашек', 6133 de:'шашкам', 6134 ve:'шашки', 6135 te:'шашками', 6136 pe:'шашках', 6137 im:'шашки', 6138 rm:'шашек', 6139 dm:'шашкам', 6140 vm:'шашки', 6141 tm:'шашками', 6142 pm:'шашках', 6143 rod:3, 6144 skl:1, 6145 odu:0, 6146 }; 6147 lx['школьница']={ 6148 ie:'школьница', 6149 re:'школьницы', 6150 de:'школьнице', 6151 ve:'школьницу', 6152 te:'школьницей', 6153 pe:'школьнице', 6154 im:'школьницы', 6155 rm:'школьниц', 6156 dm:'школьницам', 6157 vm:'школьницы', 6158 tm:'школьницами', 6159 pm:'школьницах', 6160 rod:1, 6161 skl:1, 6162 odu:0, 6163 }; 6164 lx['шлак']={ 6165 ie:'шлак', 6166 re:'шлака', 6167 de:'шлаку', 6168 ve:'шлак', 6169 te:'шлаком', 6170 pe:'шлаке', 6171 im:'шлаки', 6172 rm:'шлаков', 6173 dm:'шлакам', 6174 vm:'шлаки', 6175 tm:'шлаками', 6176 pm:'шлаках', 6177 rod:0, 6178 skl:2, 6179 odu:0, 6180 }; 6181 lx['шоколадка']={ 6182 ie:'шоколадка', 6183 re:'шоколадки', 6184 de:'шоколадке', 6185 ve:'шоколадку', 6186 te:'шоколадкой', 6187 pe:'шоколадке', 6188 im:'шоколадки', 6189 rm:'шоколадок', 6190 dm:'шоколадкам', 6191 vm:'шоколадки', 6192 tm:'шоколадками', 6193 pm:'шоколадках', 6194 rod:1, 6195 skl:1, 6196 odu:0, 6197 }; 6198 lx['щебень']={ 6199 ie:'щебень', 6200 re:'щебня', 6201 de:'щебню', 6202 ve:'щебень', 6203 te:'щебнем', 6204 pe:'щебне', 6205 im:'щебни', 6206 rm:'щебней', 6207 dm:'щебням', 6208 vm:'щебни', 6209 tm:'щебнями', 6210 pm:'щебнях', 6211 rod:0, 6212 skl:2, 6213 odu:0, 6214 }; 6215 lx['Эквадор']={ 6216 ie:'Эквадор', 6217 re:'Эквадора', 6218 de:'Эквадору', 6219 ve:'Эквадор', 6220 te:'Эквадором', 6221 pe:'Эквадоре', 6222 im:'Эквадоры', 6223 rm:'Эквадоров', 6224 dm:'Эквадорам', 6225 vm:'Эквадоры', 6226 tm:'Эквадорами', 6227 pm:'Эквадорах', 6228 rod:0, 6229 skl:2, 6230 odu:0, 6231 }; 6232 lx['электричка']={ 6233 ie:'электричка', 6234 re:'электрички', 6235 de:'электричке', 6236 ve:'электричку', 6237 te:'электричкой', 6238 pe:'электричке', 6239 im:'электрички', 6240 rm:'электричк', 6241 dm:'электричкам', 6242 vm:'электрички', 6243 tm:'электричками', 6244 pm:'электричках', 6245 rod:1, 6246 skl:1, 6247 odu:0, 6248 }; 6249 lx['Элеонора']={ 6250 ie:'Элеонора', 6251 re:'Элеоноры', 6252 de:'Элеоноре', 6253 ve:'Элеонору', 6254 te:'Элеонорой', 6255 pe:'Элеоноре', 6256 im:'Элеоноры', 6257 rm:'Элеонор', 6258 dm:'Элеонорам', 6259 vm:'Элеонор', 6260 tm:'Элеонорами', 6261 pm:'Элеонорах', 6262 rod:1, 6263 skl:1, 6264 odu:0, 6265 }; 6266 lx['этаж']={ 6267 ie:'этаж', 6268 re:'этажа', 6269 de:'этажу', 6270 ve:'этаж', 6271 te:'этажом', 6272 pe:'этаже', 6273 im:'этажи', 6274 rm:'этажей', 6275 dm:'этажам', 6276 vm:'этажи', 6277 tm:'этажами', 6278 pm:'этажах', 6279 rod:0, 6280 skl:2, 6281 odu:0, 6282 }; 6283 lx['Юлия']={ 6284 ie:'Юлия', 6285 re:'Юлии', 6286 de:'Юлии', 6287 ve:'Юлию', 6288 te:'Юлией', 6289 pe:'Юлии', 6290 im:'Юлии', 6291 rm:'Юлий', 6292 dm:'Юлиям', 6293 vm:'Юлий', 6294 tm:'Юлиями', 6295 pm:'Юлиях', 6296 rod:1, 6297 skl:1, 6298 odu:0, 6299 }; 6300 lx['яблоко']={ 6301 ie:'яблоко', 6302 re:'яблока', 6303 de:'яблоку', 6304 ve:'яблоко', 6305 te:'яблоком', 6306 pe:'яблоке', 6307 im:'яблоки', 6308 rm:'яблок', 6309 dm:'яблокам', 6310 vm:'яблоки', 6311 tm:'яблоками', 6312 pm:'яблоках', 6313 rod:2, 6314 skl:2, 6315 odu:0, 6316 }; 6317 lx['Яна']={ 6318 ie:'Яна', 6319 re:'Яны', 6320 de:'Яне', 6321 ve:'Яну', 6322 te:'Яной', 6323 pe:'Яне', 6324 im:'Яны', 6325 rm:'Ян', 6326 dm:'Янам', 6327 vm:'Ян', 6328 tm:'Янами', 6329 pm:'Янах', 6330 rod:1, 6331 skl:1, 6332 odu:0, 6333 }; 6334 lx['январь']={ 6335 ie:'январь', 6336 re:'января', 6337 de:'январю', 6338 ve:'январь', 6339 te:'январём', 6340 pe:'январе', 6341 im:'январи', 6342 rm:'январей', 6343 dm:'январям', 6344 vm:'январи', 6345 tm:'январями', 6346 pm:'январях', 6347 rod:0, 6348 skl:2, 6349 odu:0, 6350 }; 6351 6352 //}}Существительные 6353 6354 //////////////////////////////////////////////////////////////////////// 6355 6356 lx['выраженный']={}; 6357 lx['выраженный'].i=['выраженный','выраженная','выраженное','выраженные']; 6358 lx['выраженный'].r=['выраженного','выраженной','выраженного','выраженных']; 6359 lx['выраженный'].d=['выраженному','выраженной','выраженному','выраженным']; 6360 lx['выраженный'].v=['выраженный','выраженную','выраженное','выраженные']; 6361 lx['выраженный'].t=['выраженным','выраженной','выраженным','выраженными']; 6362 lx['выраженный'].p=['выраженном','выраженной','выраженном','выраженных']; 6363 6364 /////////////////////////////////////////////////////////////////////// 6365 //Здесь - только список наречий 6366 //sl - само слово. Оно же неизменяемое 6367 //sr - сравнительная степень 6368 //pr - превосходная степень 6369 //chr - часть речи. 6370 //0 - наречие 6371 //1 - существительное 6372 //2 - числительное 6373 //3 - прилагательное 6374 //4 - местоимение 6375 'use strict'; 6376 6377 lx['абсолютно']={ 6378 sl:'абсолютно', 6379 chr:0, 6380 } 6381 lx['временно']={ 6382 sl:'временно', 6383 chr:0, 6384 } 6385 //////////////////////////////////////////////////////////////////////// 6386 // 6387 // ie: именительный падеж единственного числа 6388 // re: родительный падеж единственного числа 6389 // de: дательный падеж единственного числа 6390 // ve: винительный падеж единственного числа 6391 // te: творительный падеж единственного числа 6392 // pe: предложный падеж единственного числа 6393 // ie: именительный падеж множественного числа 6394 // re: родительный падеж множественного числа 6395 // de: дательный падеж множественного числа 6396 // ve: винительный падеж множественного числа 6397 // te: творительный падеж множественного числа 6398 // pe: предложный падеж множественного числа 6399 // 6400 // rod: род: 6401 // 0: мужской 6402 // 1: женский 6403 // 2: средний 6404 // 3: только множественное число 6405 // 6406 // odu: одушевлённость: 6407 // 0: неодушевлённое 6408 // 1: одушевлённое 6409 // 6410 // skl: склонение: 6411 // 0: несклоняемое 6412 // 1: первое 6413 // 2: второе 6414 // 3: третье 6415 // 4: разносклоняемые существительные 6416 //////////////////////////////////////////////////////////////////////// 6417 'use strict'; 6418 if(lx==undefined) 6419 var lx=[]; //Объявляем глобальный объект lx 6420 //////////////////////////////////////////////////////////////////////// 6421 6422 //{{Словосочетания с главным словом - существительным 6423 lx['американская миля']={ 6424 ie:'американская миля', 6425 re:'американской мили', 6426 de:'американской миле', 6427 ve:'американскую милю', 6428 te:'американской милей', 6429 pe:'американской миле', 6430 im:'американские мили', 6431 rm:'американских миль', 6432 dm:'американским милям', 6433 vm:'американские мили', 6434 tm:'американскими милями', 6435 pm:'американских милях', 6436 rod:1, 6437 odu:0, 6438 }; 6439 lx['бутылка газировки']={ 6440 ie:'бутылка газировки', 6441 re:'бутылки газировки', 6442 de:'бутылке газировки', 6443 ve:'бутылку газировки', 6444 te:'бутылкой газировки', 6445 pe:'бутылке газировки', 6446 im:'бутылки газировки', 6447 rm:'бутылок газировки', 6448 dm:'бутылкам газировки', 6449 vm:'бутылки газировки', 6450 tm:'бутылками газировки', 6451 pm:'бутылках газировки', 6452 rod:0, 6453 odu:0, 6454 }; 6455 lx['буханка хлеба']={ 6456 ie:'буханка хлеба', 6457 re:'буханки хлеба', 6458 de:'буханке хлеба', 6459 ve:'буханку хлеба', 6460 te:'буханкой хлеба', 6461 pe:'буханке хлеба', 6462 im:'буханки хлеба', 6463 rm:'буханок хлеба', 6464 dm:'буханкам хлеба', 6465 vm:'буханки хлеба', 6466 tm:'буханками хлеба', 6467 pm:'буханках хлеба', 6468 rod:1, 6469 odu:0, 6470 }; 6471 lx['вольная борьба']={ 6472 ie:'вольная борьба', 6473 re:'вольной борьбы', 6474 de:'вольной борьбе', 6475 ve:'вольную борьбу', 6476 te:'вольной борьбой', 6477 pe:'вольной борьбе', 6478 im:'вольные борьбы', 6479 rm:'вольных борьб', 6480 dm:'вольным борьбам', 6481 vm:'вольные борьбы', 6482 tm:'вольными борьбами', 6483 pm:'вольных борьбах', 6484 rod:1, 6485 odu:0, 6486 }; 6487 lx['доисторический омнибус']={ 6488 ie:'доисторический омнибус', 6489 re:'доисторического омнибуса', 6490 de:'доисторическому омнибусу', 6491 ve:'доисторический омнибус', 6492 te:'доисторическим омнибусом', 6493 pe:'доисторическом омнибусе', 6494 im:'доисторические омнибусы', 6495 rm:'доисторических омнибусов', 6496 dm:'доисторическим омнибусам', 6497 vm:'доисторические омнибусы', 6498 tm:'доисторическими омнибусами', 6499 pm:'доисторических омнибусах', 6500 rod:0, 6501 odu:0, 6502 }; 6503 lx['книжная полка']={ 6504 ie:'книжная полка', 6505 re:'книжной полки', 6506 de:'книжной полке', 6507 ve:'книжную полку', 6508 te:'книжной полкой', 6509 pe:'книжной полке', 6510 im:'книжные полки', 6511 rm:'книжных полок', 6512 dm:'книжным полкам', 6513 vm:'книжные полки', 6514 tm:'книжными полками', 6515 pm:'книжных полках', 6516 rod:1, 6517 odu:0, 6518 }; 6519 lx['комсомолка, спортсменка, отличница и, наконец, просто красавица']={ 6520 ie:'комсомолка, спортсменка, отличница и, наконец, просто красавица', 6521 re:'комсомолки, спортсменки, отличницы и, наконец, просто красавицы', 6522 de:'комсомолке, спортсменке, отличнице и, наконец, просто красавице', 6523 ve:'комсомолку, спортсменку, отличницу и, наконец, просто красавицу', 6524 te:'комсомолкой, спортсменкой, отличницей и, наконец, просто красавицей', 6525 pe:'комсомолке, спортсменке, отличнице и, наконец, просто красавице', 6526 im:'комсомолки, спортсменки, отличницы и, наконец, просто красавицы', 6527 rm:'комсомолок, спортсменок, отличниц и, наконец, просто красавиц', 6528 dm:'комсомолкам, спортсменкам, отличницам и, наконец, просто красавицам', 6529 vm:'комсомолок, спортсменок, отличниц и, наконец, просто красавиц', 6530 tm:'комсомолками, спортсменками, отличницами и, наконец, просто красавицами', 6531 pm:'комсомолках, спортсменках, отличницах и, наконец, просто красавицах', 6532 rod:1, 6533 odu:0, 6534 }; 6535 lx['круизный лайнер']={ 6536 ie:'круизный лайнер', 6537 re:'круизного лайнера', 6538 de:'круизному лайнеру', 6539 ve:'круизный лайнер', 6540 te:'круизным лайнером', 6541 pe:'круизном лайнере', 6542 im:'круизные лайнеры', 6543 rm:'круизных лайнеров', 6544 dm:'круизным лайнерам', 6545 vm:'круизные лайнеры', 6546 tm:'круизными лайнерами', 6547 pm:'круизных лайнерах', 6548 rod:0, 6549 odu:0, 6550 }; 6551 lx['лёгкая атлетика']={ 6552 ie:'лёгкая атлетика', 6553 re:'лёкой атлетики', 6554 de:'лёгкой атлетике', 6555 ve:'лёгкую атлетику', 6556 te:'лёгкой атлетикой', 6557 pe:'лёгкой атлетике', 6558 im:'лёгкие атлетики', 6559 rm:'лёгких атлетик', 6560 dm:'лёгким атлетикам', 6561 vm:'лёгкие атлетики', 6562 tm:'лёгкими атлетиками', 6563 pm:'лёгких атлетиках', 6564 rod:1, 6565 odu:0, 6566 }; 6567 lx['магнит на холодильник']={ 6568 ie:'магнит на холодильник', 6569 re:'магнита на холодильник', 6570 de:'магниту на холодильник', 6571 ve:'магнит на холодильник', 6572 te:'магнитом на холодильник', 6573 pe:'магните на холодильник', 6574 im:'магниты на холодильник', 6575 rm:'магнитов на холодильник', 6576 dm:'магнитам на холодильник', 6577 vm:'магниты на холодильник', 6578 tm:'магнитами на холодильник', 6579 pm:'магнитах на холодильник', 6580 rod:0, 6581 odu:0, 6582 }; 6583 lx['метиловый спирт']={ 6584 ie:'метиловый спирт', 6585 re:'метилового спирта', 6586 de:'метиловому спирту', 6587 ve:'метиловый спирт', 6588 te:'метиловым спиртом', 6589 pe:'метиловом спирте', 6590 im:'метиловые спирты', 6591 rm:'метиловых спиртов', 6592 dm:'метиловым спиртам', 6593 vm:'метиловые спирты', 6594 tm:'метиловыми спиртами', 6595 pm:'метиловых спиртах', 6596 rod:0, 6597 odu:0, 6598 }; 6599 lx['морская миля']={ 6600 ie:'морская миля', 6601 re:'морской мили', 6602 de:'морской миле', 6603 ve:'морскую милю', 6604 te:'морской милей', 6605 pe:'морской миле', 6606 im:'морские мили', 6607 rm:'морских миль', 6608 dm:'морским милям', 6609 vm:'морские мили', 6610 tm:'морскими милями', 6611 pm:'морских милях', 6612 rod:1, 6613 odu:0, 6614 }; 6615 lx['наименьшее значение']={ 6616 ie:'наименьшее значение', 6617 re:'наименьшего значения', 6618 de:'наименьшему значению', 6619 ve:'наименьшее значение', 6620 te:'наименьшим значением', 6621 pe:'наименьшем значении', 6622 im:'наименьшие значения', 6623 rm:'наименьших значений', 6624 dm:'наименьшим значениям', 6625 vm:'наименьшие значения', 6626 tm:'наименьшими значениями', 6627 pm:'наименьших значениях', 6628 rod:2, 6629 odu:0, 6630 }; 6631 lx['наибольшее значение']={ 6632 ie:'наибольшее значение', 6633 re:'наибольшего значения', 6634 de:'наибольшему значению', 6635 ve:'наибольшее значение', 6636 te:'наибольшим значением', 6637 pe:'наибольшем значении', 6638 im:'наибольшие значения', 6639 rm:'наибольших значений', 6640 dm:'наибольшим значениям', 6641 vm:'наибольшие значения', 6642 tm:'наибольшими значениями', 6643 pm:'наибольших значениях', 6644 rod:2, 6645 odu:0, 6646 }; 6647 lx['населённый пункт']={ 6648 ie:'населённый пункт', 6649 re:'населённого пункта', 6650 de:'населённому пункту', 6651 ve:'населённый пункт', 6652 te:'населённым пунктом', 6653 pe:'населённом пункте', 6654 im:'населённые пункты', 6655 rm:'населённых пунктов', 6656 dm:'населённым пунктам', 6657 vm:'населённые пункты', 6658 tm:'населёнными пунктами', 6659 pm:'населённых пунктах', 6660 r2:'населённых пункта', 6661 rod:0, 6662 odu:0, 6663 }; 6664 lx['настольный теннис']={ 6665 ie:'настольный теннис', 6666 re:'настольного тенниса', 6667 de:'настольному теннису', 6668 ve:'настольный теннис', 6669 te:'настольным теннисом', 6670 pe:'настольном теннисе', 6671 im:'настольные теннисы', 6672 rm:'настольных теннисов', 6673 dm:'настольным теннисам', 6674 vm:'настольные теннисы', 6675 tm:'настольными теннисами', 6676 pm:'настольных теннисах', 6677 rod:0, 6678 odu:0, 6679 }; 6680 lx['оконная рама']={ 6681 ie:'оконная рама', 6682 re:'оконной рамы', 6683 de:'оконной раме', 6684 ve:'оконную раму', 6685 te:'оконной рамой', 6686 pe:'оконной раме', 6687 im:'оконные рамы', 6688 rm:'оконных рам', 6689 dm:'оконным рамам', 6690 vm:'оконные рамы', 6691 tm:'оконными рамами', 6692 pm:'оконных рамах', 6693 rod:1, 6694 odu:0, 6695 }; 6696 lx['открытый луч']={ 6697 ie:'открытый луч', 6698 re:'открытого луча', 6699 de:'открытому лучу', 6700 ve:'открытый луч', 6701 te:'открытым лучом', 6702 pe:'открытом луче', 6703 im:'открытые лучы', 6704 rm:'открытых лучей', 6705 dm:'открытым лучам', 6706 vm:'открытые лучи', 6707 tm:'открытыми лучами', 6708 pm:'открытых лучах', 6709 rod:0, 6710 odu:0, 6711 }; 6712 lx['прогулочное судно']={ 6713 ie:'прогулочное судно', 6714 re:'прогулочного судна', 6715 de:'прогулочному судну', 6716 ve:'прогулочное судно', 6717 te:'прогулочным судном', 6718 pe:'прогулочном судне', 6719 im:'прогулочные суда', 6720 rm:'прогулочных судов', 6721 dm:'прогулочным судам', 6722 vm:'прогулочные суда', 6723 tm:'прогулочными судами', 6724 pm:'прогулочных судах', 6725 rod:2, 6726 odu:0, 6727 }; 6728 lx['русская миля']={ 6729 ie:'русская миля', 6730 re:'русской мили', 6731 de:'русской миле', 6732 ve:'русскую милю', 6733 te:'русской милей', 6734 pe:'русской миле', 6735 im:'русские мили', 6736 rm:'русских миль', 6737 dm:'русским милям', 6738 vm:'русские мили', 6739 tm:'русскими милями', 6740 pm:'русских милях', 6741 rod:1, 6742 odu:0, 6743 }; 6744 lx['сборник тестов для подготовки к ЕГЭ']={ 6745 ie:'сборник тестов для подготовки к ЕГЭ', 6746 re:'сборника тестов для подготовки к ЕГЭ', 6747 de:'сборнику тестов для подготовки к ЕГЭ', 6748 ve:'сборник тестов для подготовки к ЕГЭ', 6749 te:'сборником тестов для подготовки к ЕГЭ', 6750 pe:'сборнике тестов для подготовки к ЕГЭ', 6751 im:'сборники тестов для подготовки к ЕГЭ', 6752 rm:'сборников тестов для подготовки к ЕГЭ', 6753 dm:'сборникам тестов для подготовки к ЕГЭ', 6754 vm:'сборники тестов для подготовки к ЕГЭ', 6755 tm:'сборниками тестов для подготовки к ЕГЭ', 6756 pm:'сборниках тестов для подготовки к ЕГЭ', 6757 rod:0, 6758 odu:0, 6759 }; 6760 lx['скромный библиотекарь']={ 6761 ie:'скромный библиотекарь', 6762 re:'скромного библиотекаря', 6763 de:'скромному библиотекарю', 6764 ve:'скромного библиотекаря', 6765 te:'скромным библиотекарем', 6766 pe:'скромном библиотекаре', 6767 im:'скромные библиотекари', 6768 rm:'скромных библиотекарей', 6769 dm:'скромным библиотекарям', 6770 vm:'скромных библиотекарей', 6771 tm:'скромными библиотекарями', 6772 pm:'скромных библиотекарях', 6773 rod:0, 6774 odu:0, 6775 }; 6776 lx['суровая воронежская хакерша']={ 6777 ie:'суровая воронежская хакерша', 6778 re:'суровой воронежской хакерши', 6779 de:'суровой воронежской хакерше', 6780 ve:'суровую воронежскую хакершу', 6781 te:'суровой воронежской хакершой', 6782 pe:'суровой воронежской хакерше', 6783 im:'суровые воронежские хакерши', 6784 rm:'суровых воронежских хакерш', 6785 dm:'суровым воронежским хакершам', 6786 vm:'суровых воронежских хакерш', 6787 tm:'суровыми воронежскими хакершами', 6788 pm:'суровых воронежских хакершах', 6789 rod:1, 6790 odu:0, 6791 }; 6792 lx['точка минимума']={ 6793 ie:'точка минимума', 6794 re:'точки минимума', 6795 de:'точке минимума', 6796 ve:'точку минимума', 6797 te:'точкой минимума', 6798 pe:'точке минимума', 6799 im:'точки минимума', 6800 rm:'точек минимума', 6801 dm:'точкам минимума', 6802 vm:'точки минимума', 6803 tm:'точками минимума', 6804 pm:'точках минимума', 6805 rod:1, 6806 odu:0, 6807 }; 6808 lx['точка максимума']={ 6809 ie:'точка максимума', 6810 re:'точки максимума', 6811 de:'точке максимума', 6812 ve:'точку максимума', 6813 te:'точкой максимума', 6814 pe:'точке максимума', 6815 im:'точки максимума', 6816 rm:'точек максимума', 6817 dm:'точкам максимума', 6818 vm:'точки максимума', 6819 tm:'точками максимума', 6820 pm:'точках максимума', 6821 rod:1, 6822 odu:0, 6823 }; 6824 lx['тяжелая атлетика']={ 6825 ie:'тяжелая атлетика', 6826 re:'тяжелой атлетики', 6827 de:'тяжелой атлетике', 6828 ve:'тяжелую атлетику', 6829 te:'тяжелой атлетикой', 6830 pe:'тяжелой атлетике', 6831 im:'тяжелые атлетики', 6832 rm:'тяжелых атлетик', 6833 dm:'тяжелым атлетикам', 6834 vm:'тяжелые атлетики', 6835 tm:'тяжелыми атлетиками', 6836 pm:'тяжелых атлетиках', 6837 rod:1, 6838 odu:0, 6839 }; 6840 lx['упаковка сока']={ 6841 ie:'упаковка сока', 6842 re:'упаковки сока', 6843 de:'упаковке сока', 6844 ve:'упаковку сока', 6845 te:'упаковкой сока', 6846 pe:'упаковке сока', 6847 im:'упаковки сока', 6848 rm:'упаковок сока', 6849 dm:'упаковкам сока', 6850 vm:'упаковки сока', 6851 tm:'упаковками сока', 6852 pm:'упаковках сока', 6853 rod:1, 6854 odu:0, 6855 }; 6856 lx['флакон шампуня']={ 6857 ie:'флакон шампуня', 6858 re:'флакона шампуня', 6859 de:'флакону шампуня', 6860 ve:'флакон шампуня', 6861 te:'флаконом шампуня', 6862 pe:'флаконе шампуня', 6863 im:'флаконы шампуня', 6864 rm:'флаконов шампуня', 6865 dm:'флаконам шампуня', 6866 vm:'флаконы шампуня', 6867 tm:'флаконами шампуня', 6868 pm:'флаконах шампуня', 6869 rod:0, 6870 odu:0, 6871 }; 6872 lx['фунт стерлингов']={ 6873 ie:'фунт стерлингов', 6874 re:'фунта стерлингов', 6875 de:'фунту стерлингов', 6876 ve:'фунт стерлингов', 6877 te:'фунтом стерлингов', 6878 pe:'фунте стерлингов', 6879 im:'фунты стерлингов', 6880 rm:'фунтов стерлингов', 6881 dm:'фунтам стерлингов', 6882 vm:'фунты стерлингов', 6883 tm:'фунтами стерлингов', 6884 pm:'фунтах стерлингов', 6885 rod:0, 6886 skl:2, 6887 odu:0, 6888 }; 6889 lx['цветочный горшок']={ 6890 ie:'цветочный горшок', 6891 re:'цветочного горшка', 6892 de:'цветочному горшку', 6893 ve:'цветочный горшок', 6894 te:'цветочным горшком', 6895 pe:'цветочном горшке', 6896 im:'цветочные горшки', 6897 rm:'цветочных горшков', 6898 dm:'цветочным горшкам', 6899 vm:'цветочные горшки', 6900 tm:'цветочными горшками', 6901 pm:'цветочных горшках', 6902 rod:0, 6903 skl:2, 6904 odu:0, 6905 }; 6906 //}}Словосочетания с главным словом - существительным 6907 6908 'use strict'; 6909 //////////////////////////////////////////////////////////////////////// 6910 var lxskl=[]; //Объявляем глобальный объект lxskl - типичные окончания 6911 //////////////////////////////////////////////////////////////////////// 6912 var lxpad={ie:1,re:1,de:1,ve:1,te:1,pe:1,im:1,rm:1,dm:1,vm:1,tm:1,pm:1,}; 6913 6914 //Пустой шаблон 6915 6916 lxskl['']={ 6917 ie:'', 6918 re:'', 6919 de:'', 6920 ve:'', 6921 te:'', 6922 pe:'', 6923 im:'', 6924 rm:'', 6925 dm:'', 6926 vm:'', 6927 tm:'', 6928 pm:'', 6929 rod:0, 6930 skl:2, 6931 odu:0, 6932 }; 6933 //Первое склонение. Род считаем женским, если что, ставим вручную. 6934 { 6935 lxskl['я']={ 6936 ie:'я', 6937 re:'и', 6938 de:'е', 6939 ve:'ю', 6940 te:'ей', 6941 pe:'е', 6942 im:'и', 6943 rm:'', 6944 dm:'ям', 6945 vm:'и', 6946 tm:'ями', 6947 pm:'ях', 6948 rod:1, 6949 skl:1, 6950 odu:0, 6951 }; 6952 lxskl['а']={ 6953 ie:'а', 6954 re:'ы', 6955 de:'е', 6956 ve:'у', 6957 te:'ой', 6958 pe:'е', 6959 im:'ы', 6960 rm:'', 6961 dm:'ам', 6962 vm:'ы', 6963 tm:'ами', 6964 pm:'ах', 6965 rod:1, 6966 skl:1, 6967 odu:0, 6968 }; 6969 ['ж','ш','ч','щ','к','х','г'].map(function(a){ 6970 lxskl[a+'а']={ 6971 ie:a+'а', 6972 re:a+'и', 6973 de:a+'е', 6974 ve:a+'у', 6975 te:a+'ой', 6976 pe:a+'е', 6977 im:a+'и', 6978 rm:a+'', 6979 dm:a+'ам', 6980 vm:a+'и', 6981 tm:a+'ами', 6982 pm:a+'ах', 6983 rod:1, 6984 skl:1, 6985 odu:0, 6986 }; 6987 }); 6988 ['ж','ш','ч'].map(function(a){ 6989 lxskl[a+'ка']={ 6990 ie:a+'ка', 6991 re:a+'ки', 6992 de:a+'ке', 6993 ve:a+'ку', 6994 te:a+'кой', 6995 pe:a+'ке', 6996 im:a+'ки', 6997 rm:a+'ек', 6998 dm:a+'кам', 6999 vm:a+'ки', 7000 tm:a+'ками', 7001 pm:a+'ках', 7002 rod:1, 7003 skl:1, 7004 odu:0, 7005 }; 7006 }); 7007 ['б','в','д','з','л','м','н','п','р','с','т'].map(function(a){ 7008 lxskl[a+'ка']={ 7009 ie:a+'ка', 7010 re:a+'ки', 7011 de:a+'ке', 7012 ve:a+'ку', 7013 te:a+'кой', 7014 pe:a+'ке', 7015 im:a+'ки', 7016 rm:a+'ок', 7017 dm:a+'кам', 7018 vm:a+'ки', 7019 tm:a+'ками', 7020 pm:a+'ках', 7021 rod:1, 7022 skl:1, 7023 odu:0, 7024 }; 7025 }); 7026 lxskl['ия']={ 7027 ie:'ия', 7028 re:'ии', 7029 de:'ии', 7030 ve:'ию', 7031 te:'ией', 7032 pe:'ии', 7033 im:'ии', 7034 rm:'ий', 7035 dm:'иям', 7036 vm:'ии', 7037 tm:'иями', 7038 pm:'иях', 7039 rod:1, 7040 skl:1, 7041 odu:0, 7042 }; 7043 } 7044 //Второе склонение, средний род 7045 lxskl['ие']={ 7046 ie:'ие', 7047 re:'ия', 7048 de:'ию', 7049 ve:'ие', 7050 te:'ием', 7051 pe:'ии', 7052 im:'ия', 7053 rm:'ий', 7054 dm:'иям', 7055 vm:'ия', 7056 tm:'иями', 7057 pm:'иях', 7058 rod:2, 7059 skl:2, 7060 odu:0, 7061 }; 7062 ['ё','е'].map(function(a){ 7063 lxskl[a]={ 7064 ie:a, 7065 re:'я', 7066 de:'ю', 7067 ve:a, 7068 te:'ем', 7069 pe:'е', 7070 im:'я', 7071 rm:'ей', 7072 dm:'ям', 7073 vm:'я', 7074 tm:'ями', 7075 pm:'ях', 7076 rod:2, 7077 skl:2, 7078 odu:0, 7079 }; 7080 }); 7081 7082 lxskl['о']={ 7083 ie:'о', 7084 re:'а', 7085 de:'у', 7086 ve:'о', 7087 te:'ом', 7088 pe:'е', 7089 im:'а', 7090 rm:'', 7091 dm:'ам', 7092 vm:'а', 7093 tm:'ами', 7094 pm:'ах', 7095 rod:2, 7096 skl:2, 7097 odu:0, 7098 }; 7099 //Второе склонение, мужской род 7100 lxskl['ий']={ 7101 ie:'ий', 7102 re:'ия', 7103 de:'ию', 7104 ve:'ий', 7105 te:'ием', 7106 pe:'ии', 7107 im:'ии', 7108 rm:'иев', 7109 dm:'иям', 7110 vm:'ии', 7111 tm:'иями', 7112 pm:'иях', 7113 rod:0, 7114 skl:2, 7115 odu:0, 7116 }; 7117 lxskl['ь']={ 7118 ie:'ь', 7119 re:'я', 7120 de:'ю', 7121 ve:'ь', 7122 te:'ем', 7123 pe:'е', 7124 im:'и', 7125 rm:'ей', 7126 dm:'ям', 7127 vm:'и', 7128 tm:'ями', 7129 pm:'ях', 7130 rod:0, 7131 skl:2, 7132 odu:0, 7133 }; 7134 lxskl['й']={ 7135 ie:'й', 7136 re:'я', 7137 de:'ю', 7138 ve:'й', 7139 te:'ем', 7140 pe:'е', 7141 im:'и', 7142 rm:'ев', 7143 dm:'ям', 7144 vm:'и', 7145 tm:'ями', 7146 pm:'ях', 7147 rod:0, 7148 skl:2, 7149 odu:0, 7150 }; 7151 ['б','в','д','з','л','м','н','п','р','с','т','ф','ц'].map(function(a){ 7152 lxskl[a]={ 7153 ie:a, 7154 re:a+'а', 7155 de:a+'у', 7156 ve:a, 7157 te:a+'ом', 7158 pe:a+'е', 7159 im:a+'ы', 7160 rm:a+'ов', 7161 dm:a+'ам', 7162 vm:a+'ы', 7163 tm:a+'ами', 7164 pm:a+'ах', 7165 rod:0, 7166 skl:2, 7167 odu:0, 7168 }; 7169 }); 7170 ['ж','ш','ч','щ','к','х','г'].map(function(a){ 7171 lxskl[a]={ 7172 ie:a, 7173 re:a+'а', 7174 de:a+'у', 7175 ve:a, 7176 te:a+'ом', 7177 pe:a+'е', 7178 im:a+'и', 7179 rm:a+'ей', 7180 dm:a+'ам', 7181 vm:a+'и', 7182 tm:a+'ами', 7183 pm:a+'ах', 7184 rod:0, 7185 skl:2, 7186 odu:0, 7187 }; 7188 }); 7189 lxskl['к'].rm='ков'; 7190 lxskl['г'].rm='гов'; 7191 lxskl['х'].rm='хов'; 7192 7193 ['ё','е','о'].map(function(a){ 7194 lxskl[a+'к']={ 7195 ie:a+'к', 7196 re:'ка', 7197 de:'ку', 7198 ve:a+'к', 7199 te:'ком', 7200 pe:'ке', 7201 im:'ки', 7202 rm:'ков', 7203 dm:'кам', 7204 vm:'ки', 7205 tm:'ками', 7206 pm:'ках', 7207 rod:0, 7208 skl:2, 7209 odu:0, 7210 }; 7211 }); 7212 //Костыли 7213 lxskl['0']={ 7214 ie:'', 7215 re:'', 7216 de:'', 7217 ve:'', 7218 te:'', 7219 pe:'', 7220 im:'', 7221 rm:'', 7222 dm:'', 7223 vm:'', 7224 tm:'', 7225 pm:'', 7226 rod:0, 7227 skl:0, 7228 odu:0, 7229 }; 7230 lxskl['мя']={ 7231 ie:'мя', 7232 re:'мени', 7233 de:'мени', 7234 ve:'мя', 7235 te:'менем', 7236 pe:'мени', 7237 im:'мена', 7238 rm:'мён', 7239 dm:'менам', 7240 vm:'мена', 7241 tm:'менами', 7242 pm:'менах', 7243 rod:0, 7244 skl:4, 7245 odu:0, 7246 }; 7247 //И отдельный набор костылей для третьего склонения 7248 lxskl['ь3']={ 7249 ie:'ь', 7250 re:'и', 7251 de:'и', 7252 ve:'ь', 7253 te:'ью', 7254 pe:'и', 7255 im:'и', 7256 rm:'ей', 7257 dm:'ям', 7258 vm:'и', 7259 tm:'ями', 7260 pm:'ях', 7261 rod:1, 7262 skl:3, 7263 odu:0, 7264 }; 7265 ['ж','ш','ч','щ'].map(function(a){ 7266 lxskl[a+'ь']={ 7267 ie:a+'ь', 7268 re:a+'и', 7269 de:a+'и', 7270 ve:a+'ь', 7271 te:a+'ью', 7272 pe:a+'и', 7273 im:a+'и', 7274 rm:a+'ей', 7275 dm:a+'ям', 7276 vm:a+'и', 7277 tm:a+'ями', 7278 pm:a+'ях', 7279 rod:1, 7280 skl:3, 7281 odu:0, 7282 }; 7283 }); 7284 //Несклоняемые 7285 ['у','ю','э'].map(function(a){ 7286 lxskl[a]={ 7287 ie:a, 7288 re:a, 7289 de:a, 7290 ve:a, 7291 te:a, 7292 pe:a, 7293 im:a, 7294 rm:a, 7295 dm:a, 7296 vm:a, 7297 tm:a, 7298 pm:a, 7299 rod:1, 7300 skl:1, 7301 odu:0, 7302 }; 7303 }); 7304 7305 //Субстантивированные - по мере необходмости 7306 lxskl['ый']={ 7307 ie:'ый', 7308 re:'ого', 7309 de:'ому', 7310 ve:'ого', 7311 te:'ым', 7312 pe:'ом', 7313 im:'ые', 7314 rm:'ых', 7315 dm:'ым', 7316 vm:'ых', 7317 tm:'ыми', 7318 pm:'ых', 7319 rod:0, 7320 skl:5, 7321 odu:1, 7322 }; 7323 lxskl['ыйся']={ 7324 ie:'ыйся', 7325 re:'огося', 7326 de:'омуся', 7327 ve:'огося', 7328 te:'ымся', 7329 pe:'омся', 7330 im:'ыеся', 7331 rm:'ыхся', 7332 dm:'ымся', 7333 vm:'ыхся', 7334 tm:'ымися', 7335 pm:'ыхся', 7336 rod:0, 7337 skl:5, 7338 odu:1, 7339 }; 7340 lxskl['ийся']={ 7341 ie:'ийся', 7342 re:'егося', 7343 de:'емуся', 7344 ve:'егося', 7345 te:'имся', 7346 pe:'емся', 7347 im:'иеся', 7348 rm:'ихся', 7349 dm:'имся', 7350 vm:'ихся', 7351 tm:'имися', 7352 pm:'ихся', 7353 rod:0, 7354 skl:5, 7355 odu:1, 7356 }; 7357 'use strict'; 7358 7359 function autosklon(slovo,p1){ 7360 if(slovo.isArray){ 7361 for(var lensl=slovo.length-1;lensl>=0;lensl--) 7362 autosklon(slovo[lensl],p1); 7363 return; 7364 } 7365 if(lx[slovo]) 7366 return console.log('Такое слово уже есть в словаре.'); 7367 var rez=setlx(slovo); 7368 if(p1!=undefined) 7369 slovo+=p1; 7370 var sl=slovo; 7371 for(;sl.length && !lx[sl] && !lxskl[sl]; sl=sl.udalPerv()){}; 7372 var lxparent=lx[sl]?lx[sl]:lxskl[sl]; 7373 var osnova=slovo.udalPosl(sl.length); 7374 for(var padezh in lxpad) 7375 rez+=logparam(padezh,osnova+lxparent[padezh]); 7376 rez+=logparam('rod',lxparent.rod); 7377 rez+=logparam('skl',lxparent.skl); 7378 rez+=logparam('odu',lxparent.odu); 7379 rez+='};\n' 7380 console.log(rez);//Это НЕ ОТЛАДКА!!! 7381 } 7382 7383 var lxkand=[]; 7384 7385 function sklonlxkand(slovo,p1,al){ 7386 if(slovo.ie) 7387 return sklonlxkand(slovo.ie,p1,al); 7388 if(lx[slovo]){ 7389 if(al) 7390 alert('Такое слово уже есть в словаре.'); 7391 return lx[slovo]; 7392 } 7393 lxkand[slovo]={}; 7394 if(p1!=undefined) 7395 slovo+=p1; 7396 var sl=slovo; 7397 for(;sl.length && !lx[sl] && !lxskl[sl]; sl=sl.udalPerv()){}; 7398 var lxparent=lx[sl]?lx[sl]:lxskl[sl]; 7399 var osnova=slovo.udalPosl(sl.length); 7400 lxkand[slovo]=lxparent.clone(); 7401 for(var padezh in lxpad) 7402 lxkand[slovo][padezh]=osnova+lxparent[padezh]; 7403 lxkand[slovo].chr=1; 7404 return lxkand[slovo]; 7405 } 7406 7407 var lxdop={ 7408 rod:1, 7409 skl:1, 7410 odu:1, 7411 sbs:1, 7412 sl:1, 7413 sr:1, 7414 pr:1, 7415 chr:1, 7416 }; 7417 7418 function strlxkand(slovo,p1,al){ 7419 var rez=setlx(slovo); 7420 var sl; 7421 if(!lxkand[slovo]) 7422 sl=sklonlxkand(slovo,p1,al).clone(); 7423 else 7424 sl=lxkand[slovo].clone(); 7425 for(var pad in lxpad){ 7426 rez+=logparam(pad,sl[pad]); 7427 sl[pad]=undefined; 7428 } 7429 for(var pad in lxdop){ 7430 rez+=logparam(pad,sl[pad]); 7431 sl[pad]=undefined; 7432 } 7433 for(var pad in sl) 7434 rez+=logparam(pad,sl[pad]); 7435 rez+='};\n'; 7436 return rez; 7437 } 7438 7439 function loglxkand(slovo,p1){ 7440 console.log(strlxkand(slovo,p1,1)); 7441 } 7442 7443 function setlx(p1){ 7444 return('\nlx[\''+p1+'\']={\n'); 7445 } 7446 7447 function logparam(p1,p2){ 7448 return p2!=undefined? 7449 p2.isString? 7450 ('\t'+p1+':\''+p2+'\',\n'): 7451 ('\t'+p1+':'+p2+',\n') 7452 :''; 7453 } 7454 7455 function logsklon(a){ 7456 if(slovo.isArray){ 7457 for(var lensl=slovo.length-1;lensl>=0;lensl--) 7458 logsklon(slovo[lensl],p1); 7459 return; 7460 } 7461 console.log(sklon(a)) 7462 } 7463 7464 function sklon(a){ 7465 setlx(a); 7466 var osn;//"Основа" слова. Выбирается так, чтобы было удобно. 7467 var rez='';//То, что отправим в результат. Например, в консоль. 7468 rez+=setlx(a); 7469 if(a.posl()=='а'){ 7470 osn=a.udalPosl(); 7471 rez+=logparam('ie',a); 7472 rez+=logparam('re',osn+'ы'); 7473 rez+=logparam('de',osn+'е'); 7474 rez+=logparam('ve',osn+'у'); 7475 rez+=logparam('te',osn+'ой'); 7476 rez+=logparam('pe',osn+'е'); 7477 rez+=logparam('im',osn+'ы'); 7478 rez+=logparam('rm',osn); 7479 rez+=logparam('dm',osn+'ам'); 7480 rez+=logparam('vm',osn+'ы'); 7481 rez+=logparam('tm',osn+'ами'); 7482 rez+=logparam('pm',osn+'ах'); 7483 rez+=logparam('rod',1); 7484 rez+=logparam('skl',1); 7485 rez+=logparam('odu',0); 7486 }else 7487 if(a.posl()=='ь'){ 7488 osn=a.udalPosl(); 7489 rez+=logparam('ie',a); 7490 rez+=logparam('re',osn+'я'); 7491 rez+=logparam('de',osn+'ю'); 7492 rez+=logparam('ve',a); 7493 rez+=logparam('te',osn+'ем'); 7494 rez+=logparam('pe',osn+'е'); 7495 rez+=logparam('im',osn+'и'); 7496 rez+=logparam('rm',osn+'ей'); 7497 rez+=logparam('dm',osn+'ям'); 7498 rez+=logparam('vm',osn+'и'); 7499 rez+=logparam('tm',osn+'ями'); 7500 rez+=logparam('pm',osn+'ях'); 7501 rez+=logparam('rod',0); 7502 rez+=logparam('skl',2); 7503 rez+=logparam('odu',0); 7504 }else 7505 { 7506 osn=a; 7507 rez+=logparam('ie',a); 7508 rez+=logparam('re',osn+'а'); 7509 rez+=logparam('de',osn+'у'); 7510 rez+=logparam('ve',a); 7511 rez+=logparam('te',osn+'ом'); 7512 rez+=logparam('pe',osn+'е'); 7513 rez+=logparam('im',osn+'ы'); 7514 rez+=logparam('rm',osn+'ов'); 7515 rez+=logparam('dm',osn+'ам'); 7516 rez+=logparam('vm',osn+'ы'); 7517 rez+=logparam('tm',osn+'ами'); 7518 rez+=logparam('pm',osn+'ах'); 7519 rez+=logparam('rod',0); 7520 rez+=logparam('skl',2); 7521 rez+=logparam('odu',0); 7522 } 7523 rez+='};\n' 7524 return rez; 7525 } 7526 'use strict'; 7527 lx['один']={ 7528 chr:2, 7529 i:'один', 7530 r:'одного', 7531 d:'одному', 7532 v:'один', 7533 t:'одним', 7534 p:'одном', 7535 }; 7536 lx['одна']={ 7537 chr:2, 7538 i:'одна', 7539 r:'одной', 7540 d:'одной', 7541 v:'одну', 7542 t:'одной', 7543 p:'одной', 7544 }; 7545 lx['одно']={ 7546 chr:2, 7547 i:'одно', 7548 r:'одного', 7549 d:'одному', 7550 v:'одно', 7551 t:'одним', 7552 p:'одном', 7553 }; 7554 lx['одни']={ 7555 chr:2, 7556 i:'одни', 7557 r:'одних', 7558 d:'одним', 7559 v:'одни', 7560 t:'одними', 7561 p:'одних', 7562 }; 7563 lx['две']={ 7564 chr:2, 7565 i:'две', 7566 r:'двух', 7567 d:'двум', 7568 v:'две', 7569 t:'двумя', 7570 p:'двух', 7571 }; 7572 lx['два']={ 7573 chr:2, 7574 i:'два', 7575 r:'двух', 7576 d:'двум', 7577 v:'два', 7578 t:'двумя', 7579 p:'двух', 7580 }; 7581 lx['три']={ 7582 chr:2, 7583 i:'три', 7584 r:'трёх', 7585 d:'трём', 7586 v:'три', 7587 t:'тремя', 7588 p:'трех', 7589 }; 7590 lx['четыре']={ 7591 chr:2, 7592 i:'четыре', 7593 r:'четырёх', 7594 d:'четырём', 7595 v:'четыре', 7596 t:'четырьмя', 7597 p:'четырёх', 7598 }; 7599 lx['пять']={ 7600 chr:2, 7601 i:'пять', 7602 r:'пяти', 7603 d:'пяти', 7604 v:'пять', 7605 t:'пятью', 7606 p:'пяти', 7607 }; 7608 lx['шесть']={ 7609 chr:2, 7610 i:'шесть', 7611 r:'шести', 7612 d:'шести', 7613 v:'шесть', 7614 t:'шестью', 7615 p:'шести', 7616 }; 7617 lx['семь']={ 7618 chr:2, 7619 i:'семь', 7620 r:'семи', 7621 d:'семи', 7622 v:'семь', 7623 t:'семью', 7624 p:'семи', 7625 }; 7626 lx['восемь']={ 7627 chr:2, 7628 i:'восемь', 7629 r:'восьми', 7630 d:'восьми', 7631 v:'восемь', 7632 t:'восемью', 7633 p:'восьми', 7634 }; 7635 lx['девять']={ 7636 chr:2, 7637 i:'девять', 7638 r:'девяти', 7639 d:'девяти', 7640 v:'девять', 7641 t:'девятью', 7642 p:'девяти', 7643 }; 7644 lx['десять']={ 7645 chr:2, 7646 i:'десять', 7647 r:'десяти', 7648 d:'десяти', 7649 v:'десять', 7650 t:'десятью', 7651 p:'десяти', 7652 }; 7653 lx['одиннадцать']={ 7654 chr:2, 7655 i:'одиннадцать', 7656 r:'одиннадцати', 7657 d:'одиннадцати', 7658 v:'одиннадцать', 7659 t:'одиннадцатью', 7660 p:'одиннадцати', 7661 }; 7662 lx['двенадцать']={ 7663 chr:2, 7664 i:'двенадцать', 7665 r:'двенадцати', 7666 d:'двенадцати', 7667 v:'двенадцать', 7668 t:'двенадцатью', 7669 p:'двенадцати', 7670 }; 7671 lx['тринадцать']={ 7672 chr:2, 7673 i:'тринадцать', 7674 r:'тринадцати', 7675 d:'тринадцати', 7676 v:'тринадцать', 7677 t:'тринадцатью', 7678 p:'тринадцати', 7679 }; 7680 lx['четырнадцать']={ 7681 chr:2, 7682 i:'четырнадцать', 7683 r:'четырнадцати', 7684 d:'четырнадцати', 7685 v:'четырнадцать', 7686 t:'четырнадцатью', 7687 p:'четырнадцати', 7688 }; 7689 lx['пятнадцать']={ 7690 chr:2, 7691 i:'пятнадцать', 7692 r:'пятнадцати', 7693 d:'пятнадцати', 7694 v:'пятнадцать', 7695 t:'пятнадцатью', 7696 p:'пятнадцати', 7697 }; 7698 lx['шестнадцать']={ 7699 chr:2, 7700 i:'шестнадцать', 7701 r:'шестнадцати', 7702 d:'шестнадцати', 7703 v:'шестнадцать', 7704 t:'шестнадцатью', 7705 p:'шестнадцати', 7706 }; 7707 lx['семнадцать']={ 7708 chr:2, 7709 i:'семнадцать', 7710 r:'семнадцати', 7711 d:'семнадцати', 7712 v:'семнадцать', 7713 t:'семнадцатью', 7714 p:'семнадцати', 7715 }; 7716 lx['восемнадцать']={ 7717 chr:2, 7718 i:'восемнадцать', 7719 r:'восемнадцати', 7720 d:'восемнадцати', 7721 v:'восемнадцать', 7722 t:'восемнадцатью', 7723 p:'восемнадцати', 7724 }; 7725 lx['девятнадцать']={ 7726 chr:2, 7727 i:'девятнадцать', 7728 r:'девятнадцати', 7729 d:'девятнадцати', 7730 v:'девятнадцать', 7731 t:'девятнадцатью', 7732 p:'девятнадцати', 7733 }; 7734 lx['двадцать']={ 7735 chr:2, 7736 i:'двадцать', 7737 r:'двадцати', 7738 d:'двадцати', 7739 v:'двадцать', 7740 t:'двадцатью', 7741 p:'двадцати', 7742 }; 7743 lx['тридцать']={ 7744 chr:2, 7745 i:'тридцать', 7746 r:'тридцати', 7747 d:'тридцати', 7748 v:'тридцать', 7749 t:'тридцатью', 7750 p:'тридцати', 7751 }; 7752 lx['сорок']={ 7753 chr:2, 7754 i:'сорок', 7755 r:'сорока', 7756 d:'сорока', 7757 v:'сорок', 7758 t:'сорока', 7759 p:'сорока', 7760 }; 7761 lx['пятьдесят']={ 7762 chr:2, 7763 i:'пятьдесят', 7764 r:'пятидесяти', 7765 d:'пятидесяти', 7766 v:'пятьдесят', 7767 t:'пятьюдесятью', 7768 p:'пятидесяти', 7769 }; 7770 lx['шестьдесят']={ 7771 chr:2, 7772 i:'шестьдесят', 7773 r:'шестидесяти', 7774 d:'шестидесяти', 7775 v:'шестьдесят', 7776 t:'шестьюдесятью', 7777 p:'шестидесяти', 7778 }; 7779 lx['семьдесят']={ 7780 chr:2, 7781 i:'семьдесят', 7782 r:'семидесяти', 7783 d:'семидесяти', 7784 v:'семьдесят', 7785 t:'семьюдесятью', 7786 p:'семидесяти', 7787 }; 7788 lx['восемьдесят']={ 7789 chr:2, 7790 i:'восемьдесят', 7791 r:'восьмидесяти', 7792 d:'восьмидесяти', 7793 v:'восемьдесят', 7794 t:'восемьюдесятью', 7795 p:'восьмидесяти', 7796 }; 7797 lx['девяносто']={ 7798 chr:2, 7799 i:'девяносто', 7800 r:'девяноста', 7801 d:'девяноста', 7802 v:'девяносто', 7803 t:'девяноста', 7804 p:'девяноста', 7805 }; 7806 lx['сто']={ 7807 chr:2, 7808 i:'сто', 7809 r:'ста', 7810 d:'ста', 7811 v:'сто', 7812 t:'ста', 7813 p:'ста', 7814 }; 7815 lx['двести']={ 7816 chr:2, 7817 i:'двести', 7818 r:'двухсот', 7819 d:'двумстам', 7820 v:'двести', 7821 t:'двумястами', 7822 p:'двухстах', 7823 }; 7824 lx['триста']={ 7825 chr:2, 7826 i:'триста', 7827 r:'трёхсот', 7828 d:'трёмстам', 7829 v:'триста', 7830 t:'тремястами', 7831 p:'трёхстах', 7832 }; 7833 lx['четыреста']={ 7834 chr:2, 7835 i:'четыреста', 7836 r:'четырёхсот', 7837 d:'четырёмстам', 7838 v:'четыреста', 7839 t:'четырьмястами', 7840 p:'четырёхстах', 7841 }; 7842 lx['пятьсот']={ 7843 chr:2, 7844 i:'пятьсот', 7845 r:'пятисот', 7846 d:'пятистам', 7847 v:'пятьсот', 7848 t:'пятьюстами', 7849 p:'пятистах', 7850 }; 7851 lx['шестьсот']={ 7852 chr:2, 7853 i:'шестьсот', 7854 r:'шестисот', 7855 d:'шестистам', 7856 v:'шестьсот', 7857 t:'шестьюстами', 7858 p:'шестистах', 7859 }; 7860 lx['семьсот']={ 7861 chr:2, 7862 i:'семьсот', 7863 r:'семисот', 7864 d:'семистам', 7865 v:'семисот', 7866 t:'семьюстами', 7867 p:'семистах', 7868 }; 7869 lx['восемьсот']={ 7870 chr:2, 7871 i:'восемьсот', 7872 r:'восьмисот', 7873 d:'восьмистам', 7874 v:'восемьсот', 7875 t:'восемьюстами', 7876 p:'восьмистах', 7877 }; 7878 lx['девятьсот']={ 7879 chr:2, 7880 i:'девятьсот', 7881 r:'девятисот', 7882 d:'девятистам', 7883 v:'девятьсот', 7884 t:'девятьюстами', 7885 p:'девятистах', 7886 }; 7887 lx['тысяча']={ 7888 chr:2, 7889 i:'тысяча', 7890 r:'тысячи', 7891 d:'тысяче', 7892 v:'тысячу', 7893 t:'тысячей', 7894 p:'тысяче', 7895 }; 7896 lx['тысячи']={ 7897 chr:2, 7898 i:'тысячи', 7899 r:'тысяч', 7900 d:'тысячам', 7901 v:'тысячи', 7902 t:'тысячами', 7903 p:'тысячах', 7904 }; 7905 lx['миллион']={ 7906 chr:2, 7907 i:'миллион', 7908 r:'миллиона', 7909 d:'миллиону', 7910 v:'миллион', 7911 t:'миллионом', 7912 p:'миллионе', 7913 }; 7914 lx['миллионы']={ 7915 chr:2, 7916 i:'миллионы', 7917 r:'миллионов', 7918 d:'миллионам', 7919 v:'миллионы', 7920 t:'миллионами', 7921 p:'миллионах', 7922 }; 7923 lx['миллиард']={ 7924 chr:2, 7925 i:'миллиард', 7926 r:'миллиарда', 7927 d:'миллиарду', 7928 v:'миллиард', 7929 t:'миллиардом', 7930 p:'миллиарде', 7931 }; 7932 lx['миллиарды']={ 7933 chr:2, 7934 i:'миллиарды', 7935 r:'миллиардов', 7936 d:'миллиардам', 7937 v:'миллиарды', 7938 t:'миллиардами', 7939 p:'миллиардах', 7940 }; 7941 lx['двое']={ 7942 chr:2, 7943 i:'двое', 7944 r:'двоих', 7945 d:'двоим', 7946 v:'двое', 7947 t:'двоими', 7948 p:'двоих', 7949 }; 7950 lx['трое']={ 7951 chr:2, 7952 i:'трое', 7953 r:'троих', 7954 d:'троим', 7955 v:'трое', 7956 t:'троими', 7957 p:'троих', 7958 }; 7959 lx['четверо']={ 7960 chr:2, 7961 i:'четверо', 7962 r:'четверых', 7963 d:'четверым', 7964 v:'четверо', 7965 t:'четверыми', 7966 p:'четверых', 7967 }; 7968 lx['пятеро']={ 7969 chr:2, 7970 i:'пятеро', 7971 r:'пятерых', 7972 d:'пятерым', 7973 v:'пятеро', 7974 t:'пятерыми', 7975 p:'пятерых', 7976 }; 7977 lx['шестеро']={ 7978 chr:2, 7979 i:'шестеро', 7980 r:'шестерых', 7981 d:'шестерым', 7982 v:'шестеро', 7983 t:'шестерыми', 7984 p:'шестерых', 7985 }; 7986 lx['семеро']={ 7987 chr:2, 7988 i:'семеро', 7989 r:'семерых', 7990 d:'семерым', 7991 v:'семеро', 7992 t:'семерыми', 7993 p:'семерых', 7994 }; 7995 lx['восьмеро']={ 7996 chr:2, 7997 i:'восьмеро', 7998 r:'восьмерых', 7999 d:'восьмерым', 8000 v:'восьмеро', 8001 t:'восьмерыми', 8002 p:'восьмерых', 8003 }; 8004 lx['девятеро']={ 8005 chr:2, 8006 i:'девятеро', 8007 r:'девятерых', 8008 d:'девятерым', 8009 v:'девятеро', 8010 t:'девятерыми', 8011 p:'девятерых', 8012 }; 8013 lx['десятеро']={ 8014 chr:2, 8015 i:'десятеро', 8016 r:'десятерых', 8017 d:'десятерым', 8018 v:'десятеро', 8019 t:'десятерыми', 8020 p:'десятерых', 8021 }; 8022 //http://pastebin.com/Dpv8pQWW - Любовь Ерышова 8023 //http://pastebin.com/jJ8CWxd0 - Екатерина Трегубова 8024 //+Николай Авдеев 8025 'use strict'; 8026 8027 function Complex(re,im){ 8028 this.re=+re?+re:0; 8029 this.im=+im?+im:0; 8030 this.isComplex=1; 8031 this.toString=function(){ 8032 /**Представляет число в виде a+bi*/ 8033 var rez; 8034 if(!this.re && !this.im) 8035 rez='0'; 8036 else if( this.re && !this.im) 8037 rez=''+this.re; 8038 else if(!this.re && this.im) 8039 rez=''+this.im+'i'; 8040 else if( this.re && this.im) 8041 rez= ''+this.re+'+'+this.im+'i'; 8042 return rez.plusminus(); 8043 } 8044 this.ts=function(){ 8045 return this.toString().ts(); 8046 } 8047 8048 this.minus=function(){ 8049 /**Противоположное число: -a-bi*/ 8050 return new Complex( -(this.re), - (this.im)); 8051 } 8052 8053 this.sopr=function(){ 8054 /**Сопряжёное число: a-bi*/ 8055 return new Complex(this.re, - (this.im)); 8056 } 8057 8058 this.abs= 8059 this.norma=function(){ 8060 /**Норма (модуль, абсолютное значение) комплексного числа*/ 8061 return (this.re.sqr()+this.im.sqr()).sqrt(); 8062 } 8063 8064 this.obrat=function(){ 8065 /**Обратное число: a-bi*/ 8066 var n=this.norma().sqr(); 8067 return new Complex(this.re/n, - (this.im)/n); 8068 } 8069 8070 this.sum=function(){ 8071 /**Прибавить к комплексному числу комплексные или действительные*/ 8072 var rez=this.clone(); 8073 // arguments[0].isComplex?arguments[0].clone():new Complex(arguments[0]); 8074 for(var i=arguments.length-1;i>=0;i--){ 8075 var operand=arguments[i]; 8076 if(operand.isNumber){ 8077 rez.re+=operand; 8078 }else{ 8079 if(operand.re){ 8080 rez.re+=operand.re; 8081 } 8082 if(operand.im){ 8083 rez.im+=operand.im; 8084 } 8085 } 8086 } 8087 return rez; 8088 } 8089 8090 this.umn=function(){ 8091 /**Умножить комплексное число на комплексные или действительные*/ 8092 var rez=this.clone(); 8093 for(var i=arguments.length-1;i>=0;i--){ 8094 var operand=arguments[i]; 8095 if(operand.isNumber){ 8096 if(operand===0){ 8097 return new Complex(); 8098 } 8099 rez.re*=operand; 8100 rez.im*=operand; 8101 }else{ 8102 if(!operand.re && !operand.im){ 8103 //Нуль 8104 return new Complex(); 8105 }else{ 8106 var r=rez.re, 8107 m=rez.im; 8108 rez.re=r*operand.re-m*operand.im; 8109 rez.im=r*operand.im+m*operand.re; 8110 } 8111 } 8112 } 8113 return rez; 8114 } 8115 } 8116 //Синонимы функций: сокращение, транслит, антитранслит и тому подобное 8117 8118 //Для func.js 8119 var sl=sluchch; 8120 8121 //Для прототипных 8122 String.prototype.ts=String.prototype.toStandart; 8123