Kaynağa Gözat

PAS -> UTF-8

Innocenty Enikeew 9 yıl önce
ebeveyn
işleme
8b4fef1050
100 değiştirilmiş dosya ile 1432 ekleme ve 1432 silme
  1. 5 5
      PAS/!Other/25_.pas
  2. 18 18
      PAS/!Other/S.PAS
  3. 6 6
      PAS/!Other/oarrFunc.pas
  4. 5 5
      PAS/!SPbSTU/2nd/2.PAS
  5. 2 2
      PAS/!SPbSTU/2nd/3.PAS
  6. 68 68
      PAS/!SPbSTU/2nd/4TH.PAS
  7. 3 3
      PAS/!SPbSTU/5th/BINTREE.PAS
  8. 5 5
      PAS/!SPbSTU/9.PAS
  9. 5 5
      PAS/!SPbSTU/Boris/9.PAS
  10. 3 3
      PAS/!SPbSTU/Boris/Kurs/KURS2.PAS
  11. 72 72
      PAS/!SPbSTU/Boris/Kurs/kursovik.pas
  12. 13 13
      PAS/!SPbSTU/Bump/BUMP.PAS
  13. 11 11
      PAS/!SPbSTU/Bump/BUMP2.PAS
  14. 7 7
      PAS/!SPbSTU/CoolKey/CoolKey.pas
  15. 7 7
      PAS/!SPbSTU/EQuations.pas
  16. 7 7
      PAS/!SPbSTU/Graph/CoolKey.pas
  17. 7 7
      PAS/!SPbSTU/Graph/DRAW10H.PAS
  18. 11 11
      PAS/!SPbSTU/Graph/OBJECTS.PAS
  19. 12 12
      PAS/!SPbSTU/Graph/OBJECTS2.PAS
  20. 12 12
      PAS/!SPbSTU/Graph/objects3.pas
  21. 36 36
      PAS/!SPbSTU/HeapSort.pas
  22. 83 83
      PAS/!SPbSTU/Kurs/CORE.PAS
  23. 7 7
      PAS/!SPbSTU/Kurs/CoolKey.pas
  24. 69 69
      PAS/!SPbSTU/Kurs/UI.PAS
  25. 82 82
      PAS/!SPbSTU/MSMO/CORE.PAS
  26. 1 1
      PAS/!SPbSTU/MSMO/kurs2.PAS
  27. 3 3
      PAS/!SPbSTU/Razzario/GROUP.PAS
  28. 7 7
      PAS/!SPbSTU/Razzario/INTEGRAL.PAS
  29. 1 1
      PAS/!SPbSTU/SYSTEM.PAS
  30. 33 33
      PAS/!SPbSTU/ShellSort.pas
  31. 83 83
      PAS/!SPbSTU/Win2k2/CORE.PAS
  32. 7 7
      PAS/!SPbSTU/Win2k2/CoolKey.pas
  33. 69 69
      PAS/!SPbSTU/Win2k2/UI2.PAS
  34. 1 1
      PAS/!SPbSTU/sys2.PAS
  35. 3 3
      PAS/ARKENOID/ARKENOID.PAS
  36. 16 16
      PAS/BINSUM.PAS
  37. 1 1
      PAS/BRICKS.PAS
  38. 33 33
      PAS/BTree.pas
  39. 2 2
      PAS/CELLS.PAS
  40. 37 37
      PAS/CHISLA.PAS
  41. 11 11
      PAS/CRYPT.PAS
  42. 13 13
      PAS/ELKA.PAS
  43. 27 27
      PAS/Genetics/genunit.pas
  44. 2 2
      PAS/Graph/slen.pas
  45. 1 1
      PAS/HDR2BBS.PAS
  46. 20 20
      PAS/HILBERT.PAS
  47. 20 20
      PAS/HILBERT2.PAS
  48. 3 3
      PAS/IsPrime.pas
  49. 2 2
      PAS/Japan/japcross.pas
  50. 19 19
      PAS/Kitten mail Log Viewer/kitlog.pas
  51. 1 1
      PAS/LIFE.PAS
  52. 1 1
      PAS/Lagrange/L2.PAS
  53. 1 1
      PAS/Lagrange/L3.PAS
  54. 1 1
      PAS/Lagrange/larg.pas
  55. 2 2
      PAS/Long Multiply/MULTIPLY.PAS
  56. 6 6
      PAS/Matrixes/MTRXFND.PAS
  57. 1 1
      PAS/Matrixes/MTRXSRT.PAS
  58. 4 4
      PAS/Model/MATH.PAS
  59. 1 1
      PAS/Model/model.pas
  60. 4 4
      PAS/Num Systems/DIMDEM.PAS
  61. 1 1
      PAS/Num Systems/DIV15.PAS
  62. 10 10
      PAS/OLD/BIO.PAS
  63. 9 9
      PAS/OLD/CENMMOS.PAS
  64. 3 3
      PAS/OLD/CHART.PAS
  65. 1 1
      PAS/OLD/CIRCLE.PAS
  66. 30 30
      PAS/OLD/DEMOMODE.PAS
  67. 3 3
      PAS/OLD/EDITOR.PAS
  68. 3 3
      PAS/OLD/EDITOR2.PAS
  69. 7 7
      PAS/OLD/HW1.PAS
  70. 8 8
      PAS/OLD/HW2.PAS
  71. 4 4
      PAS/OLD/HW21.PAS
  72. 4 4
      PAS/OLD/HW22.PAS
  73. 1 1
      PAS/OLD/HW3.PAS
  74. 12 12
      PAS/OLD/HW31.PAS
  75. 1 1
      PAS/OLD/KEYCODE.PAS
  76. 12 12
      PAS/OLD/LINE.PAS
  77. 12 12
      PAS/OLD/LINE2.PAS
  78. 30 30
      PAS/OLD/LINE3.PAS
  79. 32 32
      PAS/OLD/LINE31.PAS
  80. 30 30
      PAS/OLD/LINE32.PAS
  81. 28 28
      PAS/OLD/MISHA.PAS
  82. 30 30
      PAS/OLD/PITON.PAS
  83. 30 30
      PAS/OLD/PITON1.PAS
  84. 30 30
      PAS/OLD/PITON3.PAS
  85. 1 1
      PAS/OLD/SLIDE.PAS
  86. 15 15
      PAS/OLD/TABLEE.PAS
  87. 14 14
      PAS/OLD/TBLMULT.PAS
  88. 3 3
      PAS/PATH.PAS
  89. 5 5
      PAS/Plotting/strcalc.PAS
  90. 1 1
      PAS/QUICKSOR.PAS
  91. 22 22
      PAS/QWLOG.PAS
  92. 2 2
      PAS/RAZLFTRL.PAS
  93. 1 1
      PAS/RAZLOZEN.PAS
  94. 3 3
      PAS/RayTracing/GTYPES.PAS
  95. 1 1
      PAS/RayTracing/MATRICES.PAS
  96. 12 12
      PAS/RayTracing/PROTGA.PAS
  97. 5 5
      PAS/RayTracing/TGA.PAS
  98. 7 7
      PAS/RayTracing/TGA2.PAS
  99. 14 14
      PAS/RayTracing/UVECTOR.PAS
  100. 2 2
      PAS/SNOW.PAS

+ 5 - 5
PAS/!Other/25_.pas

@@ -32,7 +32,7 @@ begin
     end;
    i:=i^.next;
   end;
-end;{‡ ¤ ­¨¥}
+end;{Задание}
 {---------------------------------}
 
 Function GetList:PList;
@@ -40,7 +40,7 @@ var
  N,p : PList;
  cur : real;
 begin
-  WriteLn('‚¢®¤¨â¥ ç¨á« , § ª ­¨ç¨¢ ï 0-¬');
+  WriteLn('Вводите чи�ла, заканичива� 0-м');
   read(cur);
   New(p);
   p^.num := cur;
@@ -72,11 +72,11 @@ var
 begin
   ClrScr;
   List := GetList;
-  WriteLn('‘¯¨á®ª â ª®©:');
+  WriteLn('Спи�ок такой:');
   WriteList(List);
   WriteLn;
   If p26(List) then
-   writeLn('…áâì í«¥¬¥­âë, ¢áâ¥ç î騥áï ¡®«ìè¥ 2-å à §')
+   writeLn('Е�ть �лементы, в�течающие�� больше 2-х раз')
   else
-   writeLn('�¥â í«¥¬¥­â®¢, ¢áâ¥ç î騥áï ¡®«ìè¥ 2-å à §');
+   writeLn('�ет �лементов, в�течающие�� больше 2-х раз');
 end.

+ 18 - 18
PAS/!Other/S.PAS

@@ -204,17 +204,17 @@ var
  m : real;
 begin
         L1:=nil;ll:=nil;
-        WriteLN('‚¢¥¤¨â¥ 10 ç¨á¥«');
+        WriteLN('Введите 10 чи�ел');
         LL:=NewList;
-        Write('‚¢¥¤¨â¥ §­-¥ e');
+        Write('Введите зн-е e');
         Read(e.b);
         if p1(LL,e) then
          begin
                  k:=0;
                  p2(LL,e,k);
-                 WriteLn('� ©¤¥­®!, ',k,' à §');
+                 WriteLn('�айдено!, ',k,' раз');
          end
-        else WriteLn('�¥ ­ ©¤¥­®!');
+        else WriteLn('�е найдено!');
         m := LL^.b;
         {-------------------------------------}
         p11(ll) ;
@@ -222,49 +222,49 @@ begin
                                                                                                 ;
 
         p3(LL,m);
-        WriteLn('Œ ªá¨¬ã¬: ',m:0:2);
-        WriteLn('‚¢¥¤¨â¥ 10 ᨬ¢®«®¢ (¯® ®ç¥à¥¤¨!)');
+        WriteLn('Мак�имум: ',m:0:2);
+        WriteLn('Введите 10 �имволов (по очереди!)');
         l2:=NewlIst2;
-        Write('€ ⥯¥àì ®¡à â­®: ');
+        Write('� теперь обратно: ');
         p4(l2);
         writeln;
-        WriteLn('‘¯¨á®ª ¤®:');
+        WriteLn('Спи�ок до:');
         WriteList(LL);
         writeln;
-        WriteLn('‚¢¥¤¨â¥ çâ® ¨ ­  çâ® § ¬¥­ïâì:');
+        WriteLn('Введите что и на что замен�ть:');
 
 
         Read(e.b,e2.b);
         p5(LL,e,e2);
-        WriteLn('‘¯¨á®ª ¯®á«¥ § ¬¥­ë:');
+        WriteLn('Спи�ок по�ле замены:');
         WriteList(LL);
         writeln;
 
-        WriteLn('‚¢¥¤¨â¥ ç⮠㤠«ïâì:');
+        WriteLn('Введите что удал�ть:');
         Read(e.b);
         p6(LL,e);
-        WriteLn('‘¯¨á®ª ¯®á«¥ ®¤­®£® 㤠«¥­¨ï:');
+        WriteLn('Спи�ок по�ле одного удалени�:');
         WriteList(LL);
         writeln;
 
-        WriteLn('‚¢¥¤¨â¥ ç⮠㤠«ïâì:');
+        WriteLn('Введите что удал�ть:');
         Read(e.b);
         p7(LL,e);
-        WriteLn('‘¯¨á®ª ¯®á«¥ ¢á¥å 㤠«¥­¨©:');
+        WriteLn('Спи�ок по�ле в�ех удалений:');
         WriteList(LL);
         writeln;
 
         l1:=p8(LL);
-        WriteLn('€ ⥯¥àì L1');
+        WriteLn('� теперь L1');
         WriteList(LL);
         writeln;
 
-        WriteLn('‚¢¥¤¨â¥ ç⮠㤢 ¨¢ âì:');
+        WriteLn('Введите что удваивать:');
         Read(e.b);
         p9(LL,e);
-        WriteLn('‘¯¨á®ª ¯®á«¥:');
+        WriteLn('Спи�ок по�ле:');
         WriteList(LL);
         writeln;
 
-        WriteLn('‘।­.  à¨ä¬.: ',p10(LL,0,1):0:2);
+        WriteLn('Средн. арифм.: ',p10(LL,0,1):0:2);
 end.

+ 6 - 6
PAS/!Other/oarrFunc.pas

@@ -61,16 +61,16 @@ end;{WriteArray}
 Var
   X : vec;
 BEGIN
-  WriteLn('‚¢¥¤¨â¥ ',ArraySize, ' ç¨á¥«:');
+  WriteLn('Введите ',ArraySize, ' чи�ел:');
   ReadArray(X);
-  WriteLn('Œ ªá¨¬ «ì­®¥: ',MaxX(X):0:4);
-  WriteLn('Œ áᨢ, ¤® ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Unique');
+  WriteLn('Мак�имальное: ',MaxX(X):0:4);
+  WriteLn('Ма��ив, до выполнени� процедуры Unique');
   WriteArray(X);
   UniqueX(X);
-  WriteLn('Œ áᨢ, ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Unique');
+  WriteLn('Ма��ив, по�ле выполнени� процедуры Unique');
   WriteArray(X);
   if SameX(X) then
-   WriteLn('…áâì í«¥¬¥­âë á ®¤¨­ ª®¢ë¬¨ áá뫪 ¬¨')
+   WriteLn('Е�ть �лементы � одинаковыми ��ылками')
   else
-   WriteLn('�¥â í«¥¬¥­â®¢ á ®¤¨­ ª®¢ë¬¨ áá뫪 ¬¨');
+   WriteLn('�ет �лементов � одинаковыми ��ылками');
 END.

+ 5 - 5
PAS/!SPbSTU/2nd/2.PAS

@@ -20,23 +20,23 @@ begin
     Reset(INP);
     If IOResult <> 0 then
     begin
-      WriteLn('Žè¨¡ª  ®âªàëâ¨ï ä ©«  ''',InName,''', ª®¤: ', IOResult);
+      WriteLn('Ошибка открыти� файла ''',InName,''', код: ', IOResult);
       Halt(200);
     end;
   Assign(OUTP,OutName);
   Rewrite(OUTP);
     If IOResult <> 0 then
     begin
-      WriteLn('Žè¨¡ª  ®âªàëâ¨ï ä ©«  ¤«ï ç⥭¨ï ''',OutName,''', ª®¤: ', IOResult);
+      WriteLn('Ошибка открыти� файла дл� чтени� ''',OutName,''', код: ', IOResult);
       Halt(201);
     end;
   {$I+}
 
-  Write('‚¢¥¤¨â¥ ­®¬¥à ¯¥à¢®© áâப¨ á ª®â®à®© ª®¯¨à®¢ âì: ');
+  Write('Введите номер первой �троки � которой копировать: ');
   ReadLn(NB);
-  Write('‚¢¥¤¨â¥ ­®¬¥à ¯®á«¥¤­¥© áâப¨ ¤® ª®â®à®© ª®¯¨à®¢ âì: ');
+  Write('Введите номер по�ледней �троки до которой копировать: ');
   ReadLn(KB);
-  Write('‚¢¥¤¨â¥ ­®¬¥à áâப¨ ¯¥à¥¤ ª®â®à®© ¢áâ ¢¨âì: ');
+  Write('Введите номер �троки перед которой в�тавить: ');
   ReadLn(M);
 
   counter:=1;

+ 2 - 2
PAS/!SPbSTU/2nd/3.PAS

@@ -98,14 +98,14 @@ begin
     Reset(INP);
     If IOResult <> 0 then
     begin
-      WriteLn('Žè¨¡ª  ®âªàëâ¨ï ä ©«  ''',InName,''', ª®¤: ', IOResult);
+      WriteLn('Ошибка открыти� файла ''',InName,''', код: ', IOResult);
       Halt(200);
     end;
   Assign(OUTP,OutName);
   Rewrite(OUTP);
     If IOResult <> 0 then
     begin
-      WriteLn('Žè¨¡ª  ®âªàëâ¨ï ä ©«  ¤«ï ç⥭¨ï ''',OutName,''', ª®¤: ', IOResult);
+      WriteLn('Ошибка открыти� файла дл� чтени� ''',OutName,''', код: ', IOResult);
       Halt(201);
     end;
   {$I+}

+ 68 - 68
PAS/!SPbSTU/2nd/4TH.PAS

@@ -1,101 +1,101 @@
-{�ணࠬ¬  ¤«ï ç⥭¨ï ¨§ ä ©«  áâப ¨ ®¤­®¢à¥¬¬¥­­®¥ á®§¤ ­¨¥ «¨­¥©­®£®
-âਭ ¯à ¢«¥­­®£® ᯨ᪠, 1-© - ª ª ¢ ä ©«¥, 2-© ®âá®àâ. ¯® ã¡ë¢, 3-© - ¯® ¢®§à.}
+{Программа дл� чтени� из файла �трок и одновремменное �оздание линейного
+тринаправленного �пи�ка, 1-й - как в файле, 2-й от�орт. по убыв, 3-й - по возр.}
 {Copyright Innocenty Enikeew (YEAR-2000)084/1 17.10.2001}
 type
  PList = ^TList;
- chains   = array[1..3] of PList; {Œ áᨢ 㪠§ â¥«¥© ­  í«-âë}
+ chains   = array[1..3] of PList; {Ма��ив указателей на �л-ты}
  TList = record
-   s : string;  {‡­ ç¥­¨¥ í«-â  á¯¨áª .}
-   next : chains; {Œ áᨢ ááë«®ª. 1-© - ­  á«¥¤ãî騩
-                                  2-© - ­  á®àâ¨à®¢ ­­ë© ¯® ã¡ë¢
-                                  3-© - --------\\--------- ¢®§à®áâ}
+   s : string;  {Значение �л-та �пи�ка.}
+   next : chains; {Ма��ив ��ылок. 1-й - на �ледующий
+                                  2-й - на �ортированный по убыв
+                                  3-й - --------\\--------- возро�т}
  end;
 Const
- msgs : array [1..3] of string = ('­¥ ®âá®àâ¨à®¢ ­­ë©','®âá®àâ¨à®¢ ­­ë© ¯® ã¡ë¢ ­¨î','®âá®àâ¨à®¢ ­­ë© ¯® ¢®§à®áâ ­¨î');
-  {Œ áᨢ á®®¡é¥­¨© ® á®àâ¨à®¢ª¥}
+ msgs : array [1..3] of string = ('не от�ортированный','от�ортированный по убыванию','от�ортированный по возро�танию');
+  {Ма��ив �ообщений о �ортировке}
 {--------------------------------------------------------}
 Procedure CreateList(var F:text;var hs,ts : chains);
-{�à®æ¥¤ãà  ç⥭¨ï í«¥¬¥­â®¢ ¨§ ä ©«  á ®¤­®¢à¥¬¥­­®© á®àâ¨à®¢ª®© ¯® ã¡ë¢ ­¨î
- ¨ ¢®§à®áâ ­¨î
- ‚室­ë¥:
-  F  - ⥪áâ®¢ë© ä ©«, ®âªã¤  áç¨â¨¢ îâáï ¤ ­­ë¥
- ‚ë室­ë¥
-  hs - ¬ áᨢ 㪠§ â¥«¥© ­  £®«®¢ë ᯨ᪮¢
-  ts - ---------//--------- 墮áâë ᯨ᪮¢
-€«£®à¨â¬ à ¡®âë:
- 1) ‘ç¨â뢠¥âáï ¯¥à¢ë© í«¥¬¥­â, ª®â®àë¬ ¨­¨æ¨ «¨§¨àãîâáï ‚‘… 㪠§ â¥«¨
- 2) �®ª  ä ©« ­¥ ª®­ç¨âáï, á®§¤ ¥¬ ¨ áç¨â뢠¥¬ á«¥¤ãî騩 í«¥¬¥­â. ‡ ¯¨á뢠¥¬ 
-    ¢ 1-© 㪠§ â¥«ì
- 3) � å®¤¨¬ ¬¥áâ® ¯® ¢®§à áâ ­¨î. ‚áâ ¢«ï¥¬ â㤠, ¯®«ãç ï 2-î áá뫪ã
- 4) ------\\-------- ã¡ë¢ ­¨î.    ----------\\-----------  3-î
- 5) �¥à¥å®¤ ­¥ 2
+{Процедура чтени� �лементов из файла � одновременной �ортировкой по убыванию
+ и возро�танию
+ Входные:
+  F  - тек�товый файл, откуда �читивают�� данные
+ Выходные
+  hs - ма��ив указателей на головы �пи�ков
+  ts - ---------//--------- хво�ты �пи�ков
+�лгоритм работы:
+ 1) Считывает�� первый �лемент, которым инициализируют�� ВСЕ указатели
+ 2) Пока файл не кончит��, �оздаем и �читываем �ледующий �лемент. Запи�ываем 
+    в 1-й указатель
+ 3) �аходим ме�то по возра�танию. В�тавл�ем туда, получа� 2-ю ��ылку
+ 4) ------\\-------- убыванию.    ----------\\-----------  3-ю
+ 5) Переход не 2
 }
 var
- i           : integer;  {“ª §ë¢ ¥â ­®¬¥à áá뫪¨}
- n,c         : PList;    {á - ­®¢ë© á®§¤ ­­ë©, n - "¡¥£ã­®ª" ¤«ï ¯®¨áª  ¬¥áâ }
+ i           : integer;  {Указывает номер ��ылки}
+ n,c         : PList;    {� - новый �озданный, n - "бегунок" дл� пои�ка ме�та}
 begin                           
   New(Hs[1]);                { \ }
   Hs[2]:=Hs[1];              { | }
   Hs[3]:=Hs[1];              { | }
-  for i := 1 to 3 do         { | ‘®§¤ ­¨¥ }
-   begin                     { | ¨ ç⥭¨¥ �…�‚ŽƒŽ í«¥¬¥­â }
+  for i := 1 to 3 do         { | Создание }
+   begin                     { | и чтение ПЕРВОГО �лемента}
     ts[i]:=hs[1];            { | }
     Hs[1]^.next[i] := nil;   { | }
    end;                      { | }
   ReadLn(F,Hs[1]^.s);        { / }
-  while not EOF(F) do       {Žá­®¢­®© 横« áç¨â뢠­¨ï í«¥¬¥­â®¢}
+  while not EOF(F) do       {О�новной цикл �читывани� �лементов}
   begin
-    New(c);for i := 1 to 3 do c^.next[i]:=nil;  {‚뤥«¥­¨¥ ­®¢®£® í«-â  ¨
-                                                 ¨­¨æ¨ «¨§ æ¨ï ¥£® ááë«®ª}
-    ts[1]^.Next[1] := c;     {‡ ­¥á¥¬ ¥£® ¢ ª®­¥æ ¯¥à¢®© 楯®çª¨}
-    ts[1]:=c;                {¨ ᤢ¨­¥¬ ¥¥ 墮áâ}
+    New(c);for i := 1 to 3 do c^.next[i]:=nil;  {Выделение нового �л-та и
+                                                 инициализаци� его ��ылок}
+    ts[1]^.Next[1] := c;     {Зане�ем его в конец первой цепочки}
+    ts[1]:=c;                {и �двинем ее хво�т}
     ReadLn(c^.s);
     for i := 2 to 3 do
-    {„ ­­ë© 横« ®¡ê¥¤¨­ï¥â ¢ ᥡ¥ ®¤­®¢à¥¬¥­­®¥ á®§¤ ­¨¥ 2 ¨ 3-© áá뫪¨,
-     â.ª ®­¨ ®â«¨ç îâáï «¨èì §­ ª®¬ áà ¢­¥­¨ï}
+    {Данный цикл объедин�ет в �ебе одновременное �оздание 2 и 3-й ��ылки,
+     т.к они отличают�� лишь знаком �равнени�}
      begin 
       if ((c^.s > hs[i]^.s) and (i=2)) or ((c^.s < hs[i]^.s) and (i=3)) then
-      {�஢¥à塞, ­¥ ­ ¤® «¨ § ¬¥­¨âì £®«®¢ã ­®¢ë¬ í«-⮬}
+      {Провер�ем, не надо ли заменить голову новым �л-том}
        begin
         c^.next[i] := hs[i];
         hs[i]:=c;
        end
-      else {ˆ­ ç¥ ¨é¥¬ ¥¬ã ¬¥áâ® ¢ 㦥 á®§¤ ­­®¬ ᯨ᪥}
+      else {Иначе ищем ему ме�то в уже �озданном �пи�ке}
        begin
-         n:=hs[i]; {ˆ­¨æ. "¡¥£ã­®ª"}
+         n:=hs[i]; {Иниц. "бегунок"}
 
          while (n<>ts[i]) and
-         (                                      {�®ª  ­¥ ¯®á«¥¤­¨© í«-â,}
-          ((n^.next[i]^.s > c^.s) and (i=2)) or {¨ ¢ë¯®«­ï¥âáï ®âá®àâ¨à®¢ ­­®áâì}
-          ((n^.next[i]^.s < c^.s) and (i=3))    {¯¥à¥¬¥é ¥¬ "¡¥£ã­®ª"}
+         (                                      {Пока не по�ледний �л-т,}
+          ((n^.next[i]^.s > c^.s) and (i=2)) or {и выполн�ет�� от�ортированно�ть}
+          ((n^.next[i]^.s < c^.s) and (i=3))    {перемещаем "бегунок"}
          ) do n:=n^.next[i];
 
-         c^.next[i] := n^.next[i]; {‚áâ ¢«ï¥¬ ­ è í«-â ¬¥¦¤ã "¡¥£ã­ª®¬"}
-         n^.next[i] := c;          {¨ á«¥¤ãî騬 §  ­¨¬}
+         c^.next[i] := n^.next[i]; {В�тавл�ем наш �л-т между "бегунком"}
+         n^.next[i] := c;          {и �ледующим за ним}
 
-         if n = ts[i] then ts[i] := c; {�ਠ­¥®¡å®¤¨¬®á⨠- ᬥ頥¬ 墮áâ}
-       end; {Š®­¥æ ¤®¡ ¢«¥­¨ï í«-â  ¢ á®àâ.ᯨ᮪}
-     end; {Š®­¥æ 横«  ¤«ï 2-å á®àâ¨à®¢®ª}
-  end; {Š®­¥æ 横«  ç⥭¨ï ä ©« }
+         if n = ts[i] then ts[i] := c; {При необходимо�ти - �мещаем хво�т}
+       end; {Конец добавлени� �л-та в �орт.�пи�ок}
+     end; {Конец цикла дл� 2-х �ортировок}
+  end; {Конец цикла чтени� файла}
 end;{CreateList}
 {------------------------------}     
 Procedure WriteList(var F:text;hs,ts:chains;order:integer);
-{�à®æ¥¤ãà  ¢ë¢®¤  ᯨ᪠, § ¤ ­­®£® hs ¨ ts ¢ ä ©« F
- Order - ­®¬¥à ᯨ᪠, ¯® ª®â®à®¬ã ¡¥¦ âì}
+{Процедура вывода �пи�ка, заданного hs и ts в файл F
+ Order - номер �пи�ка, по которому бежать}
 var
- c : Plist;   {�¥£ã­®ª}
+ c : Plist;   {Бегунок}
 begin
- c:=hs[order]; {¥£® ¨­¨æ¨ «¨§ æ¨ï}
+ c:=hs[order]; {его инициализаци�}
  repeat
    WriteLn(c^.s);   
-   c:=c^.next[order]; {¯à®¤¢¨¦¥­¨¥ ¯® ᯨáªã}
- until c = ts[order]; {�ਧ­ ª ª®­æ  ᯨ᪠ - ¢ë¢®¤ 墮áâ }
+   c:=c^.next[order]; {продвижение по �пи�ку}
+ until c = ts[order]; {Признак конца �пи�ка - вывод хво�та}
 end;{WriteList}
 {------------------------------}
-{  ƒŽ‹Ž‚�މ ŒŽ„“‹œ  }
+{  ГОЛОВ�ОЙ МОДУЛЬ  }
 var
- heads,tails : chains;   {Œ áá¨¢ë £®«®¢ ¨ 墮á⮢}
- ch          : integer;  {¯¥à¥¬¥­­ ï ¢ë¡®à  ¢ à¨ ­â  ¢ë¢®¤ }
+ heads,tails : chains;   {Ма��ивы голов и хво�тов}
+ ch          : integer;  {переменна� выбора варианта вывода}
 begin
   Assign(input,'4th.txt');
   {$I-}
@@ -106,21 +106,21 @@ begin
        Halt(255);
      end;
   {$I+}
-  CreateList(INPUT,Heads,Tails); {‘®§¤ ­¨¥ ᯨ᪠}
+  CreateList(INPUT,Heads,Tails); {Создание �пи�ка}
   Close(Input);
-  Assign(Input,'con'); {ˆ­¨æ¨ «¨§ æ¨ï ª« ¢¨ âãàë ­  ¬¥áâ®}
+  Assign(Input,'con'); {Инициализаци� клавиатуры на ме�то}
   Reset(Input);
 
-  WriteLn('‘¯¨á®ª á®§¤ ­! ‚¢¥¤¨â¥:');
-  WriteLn('  1 - ­¥ ®âá®àâ¨à®¢ ­ ');
-  WriteLn('  2 - ®âá®àâ¨à®¢ ­ ¯® ã¡ë¢ ­¨î');       {‚뢮¤ ¯à¨£« è¥­¨ï}
-  WriteLn('  3 - ®âá®àâ¨à®¢ ­ ¯® ¢®§à®áâ ­¨î');
+  WriteLn('Спи�ок �оздан! Введите:');
+  WriteLn('  1 - не от�ортирован ');
+  WriteLn('  2 - от�ортирован по убыванию');       {Вывод приглашени�}
+  WriteLn('  3 - от�ортирован по возро�танию');
   ch:=0;
   repeat
-    Write('‚¢¥¤¨â¥ ç¨á«® ®â 1-£® ¤® 3-å: ');   {‡ ¯à®á}
+    Write('Введите чи�ло от 1-го до 3-х: ');   {Запро�}
     Read(ch);
   until ch in [1..3];
-  WriteLn('‚ë ¢ë¡à «¨ ',msgs[ch]); {‘¨£­ «¨§ æ¨ï ¢ë¡®à }
+  WriteLn('Вы выбрали ',msgs[ch]); {Сигнализаци� выбора}
   Assign(output,'4th.out');
   Rewrite(output);
   if IOResult <> 0 then
@@ -128,13 +128,13 @@ begin
      WriteLn('Error opening ''4th.out'' for writing :( ');
      Halt(254);
    end;
-  WriteLn('Žà¨£¨­ «:');
-  WriteList(OUTPUT,heads,tails,1);  {‚뢮¤ á­ ç «  ¨á室­®£® ᯨ᪠}
-  WriteLn('�¥§ã«ìâ â:');
-  WriteList(OUTPUT,heads,tails,ch); {‡ â¥¬ - ¢ë¡à ­­®£® ¯®«ì§®¢ â¥«¥¬}
+  WriteLn('Оригинал:');
+  WriteList(OUTPUT,heads,tails,1);  {Вывод �начала и�ходного �пи�ка}
+  WriteLn('Результат:');
+  WriteList(OUTPUT,heads,tails,ch); {Затем - выбранного пользователем}
 
   while Heads[1] <> nil do
-  {Žç¨á⪠ ¢á¥£® ᯨ᪠, Heads[1] - ¡¥£ã­®ª, Tails[1] - ¢à¥¬¥­­ ï ¯¥à¥¬¥­­ ï}
+  {Очи�тка в�его �пи�ка, Heads[1] - бегунок, Tails[1] - временна� переменна�}
   begin
     Tails[1] := Heads[1]^.next[1];
     Dispose(heads[1]);

+ 3 - 3
PAS/!SPbSTU/5th/BINTREE.PAS

@@ -1,5 +1,5 @@
 Program BinTree;
-{�ணࠬ¬  ¤«ï £¥­¥à æ¨¨, ¬®¤¨ä¨æ¨à®¢ ­¨ï, ®â®¡à ¦¥­¨ï ¡¨­ à­®£® ¤¥à¥¢  ¯®¨áª .}
+{Программа дл� генерации, модифицировани�, отображени� бинарного дерева пои�ка.}
 Uses CRT;
 type
  PTree = ^TTree;
@@ -43,7 +43,7 @@ var
  end;
 {}
 begin
- if aP = nil then WriteLn('�«-â  ',aKey, ' ­¥â ¢ ¤¥à¥¢¥!') else
+ if aP = nil then WriteLn('Эл-та ',aKey, ' нет в дереве!') else
  if aKey > aP^.Key then Delete(aKey,aP^.R) else
  if aKey < aP^.Key then Delete(aKey,aP^.L) else
   begin
@@ -112,7 +112,7 @@ begin
   ClrScr;
   Draw(root,40,0);
   GotoXY(1,24);
-  Write('‚¢¥¤¨â¥ ª®£® 㤠«¨âì: ');
+  Write('Введите кого удалить: ');
   Read(c);
   Delete(c,root);
   ClrScr;

+ 5 - 5
PAS/!SPbSTU/9.PAS

@@ -1,7 +1,7 @@
 {
- „®áâã¯­ë¥ ®¯¥à æ¨¨:
-  +-*/ - áâ ­¤ àâ­®
-  ^    - ¢®§¢¥¤¥­¨¥ ¢ á⥯¥­ì
+ До�тупные операции:
+  +-*/ - �тандартно
+  ^    - возведение в �тепень
 }
 
 const
@@ -237,8 +237,8 @@ begin
  ToPostfix(Tree,aOut);
  Assign(OutPut,'9.out');
  Rewrite(OutPut);
- WriteLn('‚ëà ¦¥­¨¥ ¢ ¯®áâ䨪á. ä®à¬¥: ',aOut);
- WriteLn('�¥§ã«ìâ â: ',CalculateTree(Tree):0:3);
+ WriteLn('Выражение в по�тфик�. форме: ',aOut);
+ WriteLn('Результат: ',CalculateTree(Tree):0:3);
  Close(output);
  DisposeTree(Tree);
 end.

+ 5 - 5
PAS/!SPbSTU/Boris/9.PAS

@@ -1,7 +1,7 @@
 {
- „®áâã¯­ë¥ ®¯¥à æ¨¨:
-  +-*/ - áâ ­¤ àâ­®
-  ^    - ¢®§¢¥¤¥­¨¥ ¢ á⥯¥­ì
+ До�тупные операции:
+  +-*/ - �тандартно
+  ^    - возведение в �тепень
 }
 
 const
@@ -236,8 +236,8 @@ begin
  ToPostfix(Tree,aOut);
  Assign(OutPut,'9.out');
  Rewrite(OutPut);
- WriteLn('‚ëà ¦¥­¨¥ ¢ ¯®áâ䨪á. ä®à¬¥: ',aOut);
- WriteLn('�¥§ã«ìâ â: ',CalculateTree(Tree):0:3);
+ WriteLn('Выражение в по�тфик�. форме: ',aOut);
+ WriteLn('Результат: ',CalculateTree(Tree):0:3);
  Close(output);
  DisposeTree(Tree);
 end.

+ 3 - 3
PAS/!SPbSTU/Boris/Kurs/KURS2.PAS

@@ -48,9 +48,9 @@ Rewrite(output);
    Model^.RealizSteps := 100000;
    while Model^.Step do if Model^.Curstep mod 1000 = 6 then
     begin
-     WriteLn('˜ £ - ',Model^.Curstep,
-         ' : P®âª2 = ',100*Srcs2^.RefusedReq/Srcs2^.TotalReq:0:2,
-         ' : P®âª1 = ',100*Srcs1^.RefusedReq/Srcs1^.TotalReq:0:2); 
+     WriteLn('Шаг - ',Model^.Curstep,
+         ' : Pотк2 = ',100*Srcs2^.RefusedReq/Srcs2^.TotalReq:0:2,
+         ' : Pотк1 = ',100*Srcs1^.RefusedReq/Srcs1^.TotalReq:0:2); 
     end;
 {   Model^.PrintValues;
   end;}

+ 72 - 72
PAS/!SPbSTU/Boris/Kurs/kursovik.pas

@@ -25,107 +25,107 @@ PReq = ^TReq;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
 
-ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {’¨¯ë ¨áâ®ç­¨ª®¢}
+ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {Типы и�точников}
 
 CSource = object   
-  SType : ESOURCES; {Š ª®¢ ­ è ¨áâ®ç­¨ª? }
-  Name  : integer;  {€ ª ª ¥£® §®¢ãâ ?}
+  SType : ESOURCES; {Каков наш и�точник? }
+  Name  : integer;  {� как его зовут ?}
 
-  LastTime : real;  {‚à¥¬ï £¥­¥à æ¨¨ ¯®á«¥¤­¥£® § ¯à®á }
-  LastReq  : TReq;  {�®á«¥¤­¨© ᣥ­¥à¨à®¢ ­­ë© § ¯à®á}
+  LastTime : real;  {Врем� генерации по�леднего запро�а}
+  LastReq  : TReq;  {По�ледний �генерированный запро�}
 
-  NewTime  : real;  {Œ®¬¥­â £¥­¥à æ¨¨ ­®¢®£® § ¯à®á }
+  NewTime  : real;  {Момент генерации нового запро�а}
   Lambda   : real;
 
-  TotalReq : longInt; {ޡ饥 ç¨á«® § ï¢®ª ®â ¨áâ®ç­¨ª }
-  DoneReq : longInt; {ç¨á«® ®¡à ¡®â ­­ëå § ï¢®ª ®â ¨áâ®ç­¨ª }  
-  RefusedReq:LongInt; {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
-  WaitTime : real; {ޡ饥 ¢à¥¬ï ¯à¥¡ë¢ ­¨ï ¢ á¨á⥬¥}
-  ProbRefuse:real; {‚¥à®ïâ­®áâì ®âª § } 
-  MatWait  : real; {Œ â¥¬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢ ¡ãä¥à¥}
+  TotalReq : longInt; {Общее чи�ло за�вок от и�точника}
+  DoneReq : longInt; {чи�ло обработанных за�вок от и�точника}  
+  RefusedReq:LongInt; {Чи�ло отклоненных за�вок}
+  WaitTime : real; {Общее врем� пребывани� в �и�теме}
+  ProbRefuse:real; {Веро�тно�ть отказа} 
+  MatWait  : real; {Математиче�кое ожидание в буфере}
 
-  Constructor Init(aName : Integer;aLambda:real); {Š®­áâàãªâ®à á ¨¬¥­¥¬}
-  Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
-  Procedure GenNewReq; {ƒ¥­¥à æ¨ï ­®¢®£® § ¯à®á }
+  Constructor Init(aName : Integer;aLambda:real); {Кон�труктор � именем}
+  Procedure Reset; {Сбро� в�ех �четчиков}
+  Procedure GenNewReq; {Генераци� нового запро�а}
   Destructor Done;virtual;
 end;{CSource}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CDevice = object   {Ž¡ê¥ªâ - ¯à®á⥩襥 ãá⮩á⢮ ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
-  LastTime : real; {‚à¥¬ï ¯®á«¥¤­¥£® § ¢¥à襭¨ï ®¡á«ã¦¨¢ ­¨ï}
+CDevice = object   {Объект - про�тейшее у�той�тво ма��ового об�луживани�}
+  LastTime : real; {Врем� по�леднего завершени� об�луживани�}
 
-  BegTime  : real; {‚à¥¬ï ­ ç «  ®¡á«ã¦¨¢ ­¨ï}
-  DoneTime : real; {‚६ï, ¢ ª®â®à®¥ § ª®­ç¨âáï ®¡à ¡®âª }
+  BegTime  : real; {Врем� начала об�луживани�}
+  DoneTime : real; {Врем�, в которое закончит�� обработка}
 
-  Stoppage : real; {ޡ饥 ¢à¥¬ï ¯à®áâ®ï ¯à¨¡®à }
+  Stoppage : real; {Общее врем� про�то� прибора}
 
-  IsWorking : boolean; {Žáãé¥á⢫ï¥âáï «¨ ®¡á«ã¦¨¢ ­¨¥ ?}
-  CurWorking : TReq; {’¥ªã騩 ®¡à ¡ â뢠¥¬ë© § ¯à®á}
+  IsWorking : boolean; {О�уще�твл�ет�� ли об�луживание ?}
+  CurWorking : TReq; {Текущий обрабатываемый запро�}
   Lambda   : real; 
 
   Constructor Init(aLambda:real); {}
-  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
-  Procedure Reset; {‘¡à®á ãáâà-¢ }
-  Function DoneWork:PReq; {‡ ¢¥à襭¨¥ ®¡à ¡®âª¨ ⥪ã饣® § ¯à®á , á ¥£® ¢®§¢à â®¬}
+  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
+  Procedure Reset; {Сбро� у�тр-ва}
+  Function DoneWork:PReq; {Завершение обработки текущего запро�а, � его возвратом}
   Destructor Done;
 end; {CDevice}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 EBuffers = (BUFFER_DUMMY, BUFFER_FIFO, BUFFER_LIFO, BUFFER_PRIOR);
 
-CBuffer = object      {�ãää¥à § ¯à®á®¢}
-  BufType      : EBuffers; {’¨¯ ¡ãä¥à }
-  BufferLength : integer; {„«¨­  ¡ãä¥à }
-  CellCount    : integer; {ˆ­¤¥ªá ⥪ã饩 ᢮¡®¤­®© ï祩ª¨}
-  Data         : PReqArray; {‘®¡á⢥­­® á ¬ ¡ãä¥à}
-  Constructor Init(aBufLen:integer); {ˆ­¨æ¨ «¨§ æ¨ï ¡ãä¥à }
-  Destructor Done;virtual;{„¥áâàãªâ®à, ®­ ¨ ¥áâì}
-  Function SetBufferSize(aNewSize:integer):boolean;{ˆ§¬¥­¥­¨¥ à §¬¥à  ¡ãä¥à }
-  Procedure FreeBuffer; {Žá¢®¡®¦¤¥­¨¥ ¢á¥£® ¡ãä¥à  áà §ã}
-  Function AddReq(var aNew, rKicked:TReq):boolean; {„®¡ ¢«ï¥âáï § ¯à®á ¢ ¡ãä¥à.
-   …᫨ ¨§ ¡ãä¥à  ª ª®©-â® § ¯à®á 㤠«¥­, â® ä-æ¨ï ¢®§¢à. false, ¨ ¢ rKicked -
-   § ¯à®á, ª®â®àë© ®âª«®­¥­}
-  Function GetReq(var rReq:TReq):boolean;virtual; {‚ëâ é¨âì ¨§ ¡ãä¥à  § ¯à®á,
-        ¥á«¨ ãᯥ譮 - true}
+CBuffer = object      {Буффер запро�ов}
+  BufType      : EBuffers; {Тип буфера}
+  BufferLength : integer; {Длина буфера}
+  CellCount    : integer; {Индек� текущей �вободной �чейки}
+  Data         : PReqArray; {Соб�твенно �ам буфер}
+  Constructor Init(aBufLen:integer); {Инициализаци� буфера}
+  Destructor Done;virtual;{Де�труктор, он и е�ть}
+  Function SetBufferSize(aNewSize:integer):boolean;{Изменение размера буфера}
+  Procedure FreeBuffer; {О�вобождение в�его буфера �разу}
+  Function AddReq(var aNew, rKicked:TReq):boolean; {Добавл�ет�� запро� в буфер.
+   Е�ли из буфера какой-то запро� удален, то ф-ци� возвр. false, и в rKicked -
+   запро�, который отклонен}
+  Function GetReq(var rReq:TReq):boolean;virtual; {Вытащить из буфера запро�,
+        е�ли у�пешно - true}
 end; {CBuffer}
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CModel = object {� è  ¬®¤¥«ì ‘ŒŽ} 
- Sources  : PSourceArr; {ˆáâ®ç­¨ª¨} 
- SourceCnt: integer;    {—¨á«® ¨áâ®ç­¨ª®¢}
- MaxSrc   : integer;    {� §¬¥à­®áâì ¬ áᨢ  ¨áâ®ç­¨ª®¢}
+CModel = object {�аша модель СМО} 
+ Sources  : PSourceArr; {И�точники} 
+ SourceCnt: integer;    {Чи�ло и�точников}
+ MaxSrc   : integer;    {Размерно�ть ма��ива и�точников}
 
- Buffer   : PBuffer;    {�ãä¥à}
- Device   : PDevice;    {“áâனá⢮}
+ Buffer   : PBuffer;    {Буфер}
+ Device   : PDevice;    {У�трой�тво}
 
- CurTime  : real;       {’¥ªã騩 ¬®¬¥­â ¢à¥¬¥­¨}
+ CurTime  : real;       {Текущий момент времени}
  Delta    : real;
  DovInt   : real;
 
- NextSource:integer;    {Š ª®© ¨§ ¨áâ®ç­¨ª®¢ - ¡ëáâ॥}
- RealizSteps:LongInt;   {�¥®¡å. ç¨á«® ॠ«¨§ æ¨©}
- CurStep  : LongInt;    {’¥ªã騩 è £}
+ NextSource:integer;    {Какой из и�точников - бы�трее}
+ RealizSteps:LongInt;   {�еобх. чи�ло реализаций}
+ CurStep  : LongInt;    {Текущий шаг}
 {}
- DoneCount,             {—¨á«® ®¡à ¡®â ­­ëå § ï¢®ª}
- RefusedCount,           {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
- TotalCount : integer;  {ޡ饥 ç¨á«® § ï¢®ª}
+ DoneCount,             {Чи�ло обработанных за�вок}
+ RefusedCount,           {Чи�ло отклоненных за�вок}
+ TotalCount : integer;  {Общее чи�ло за�вок}
 
- Working  : boolean;    {� ¡®â ¥â «¨ ¬®¤¥«ì ?}
+ Working  : boolean;    {Работает ли модель ?}
  WorkReq  : TReq;
 
  Constructor Init(aBegSrcCnt:integer;aDev:PDevice;aBuf:PBuffer;
                   aDel,aDov:Real);
- Function SetSourceCount(aNewCnt:integer):boolean; {“áâ ­®¢ª  ­®¢®£® ç¨á« 
-                                              ¨áâ®ç­¨ª®¢, á á®åà ­¥­¨¥¬ áâ àëå}
- Function AddNewSource(aNewSrc:PSource):boolean; {„®¡ ¢«¥­¨¥ ­®¢®£® ¨áâ®ç­¨ª }
- Procedure SetNextSource; {� å®¤¨â NextSource}
+ Function SetSourceCount(aNewCnt:integer):boolean; {У�тановка нового чи�ла
+                                              и�точников, � �охранением �тарых}
+ Function AddNewSource(aNewSrc:PSource):boolean; {Добавление нового и�точника}
+ Procedure SetNextSource; {�аходит NextSource}
  Function TestVer:boolean; {}
- Function RemoveSource(aName:integer):boolean; {“¤ «¥­¨¥ ¨áâ®ç­¨ª  ¨§ ¬®¤¥«¨}
- Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
+ Function RemoveSource(aName:integer):boolean; {Удаление и�точника из модели}
+ Procedure Reset; {Сбро� в�ех �четчиков}
  Procedure Start;
  Procedure PrintValues;
- Function Step:boolean; {Œ®¤¥«¨àã¥â á«¥¤ãî騩 è £, ¥á«¨ ¢ }
+ Function Step:boolean; {Моделирует �ледующий шаг, е�ли в }
  Destructor Done;
 end;
 {-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
@@ -179,7 +179,7 @@ begin
   IsWorking := false;
 end;{CDevice.Reset}
 {---------------------------}
-Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
+Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
 begin
   AddReq := false;
   if not isWorking then
@@ -246,12 +246,12 @@ end;{CBuffer.SetBufferSize}
 {-----------------------}
 Function CBuffer.AddReq(var aNew, rKicked:TReq):boolean;
 begin
-  if CellCount=BufferLength then {�  á ¬®¬ ¤¥«¥, â.ª á 0, â® ¡®«ìè¥}
+  if CellCount=BufferLength then {�а �амом деле, т.к � 0, то больше}
    begin
      AddReq := false;
      rKicked := aNew;
-     rKicked.Death := aNew.Birth; {‡ ¯à®á ®âª«®­¥­, ¢ ¬®¬¥­â, ª®£¤  ­®¢ë© ¯à¨¡ë«,
-                                    â.¥. ª®£¤  â®â ¡ë« á®§¤ ­}
+     rKicked.Death := aNew.Birth; {Запро� отклонен, в момент, когда новый прибыл,
+                                    т.е. когда тот был �оздан}
    end
   else
    begin
@@ -352,7 +352,7 @@ Begin
   Dec(SourceCnt);
 end;{CModel.RemoveSource}
 {------------------------------------------------------------------}
-Procedure CModel.SetNextSource; {� å®¤¨â NextSource}
+Procedure CModel.SetNextSource; {�аходит NextSource}
 var
  c      : integer;
 begin
@@ -418,7 +418,7 @@ var
 Begin
  Step := false;
  if Not Working then exit;
- ret := false; {‘ç¨â ¥¬, çâ® ¯à®¤®«¦ âì ­¥ ¡ã¤¥¬}
+ ret := false; {Считаем, что продолжать не будем}
 
  for i:=0 to SourceCnt-1 do if Sources^[i]^.TotalReq < RealizSteps then
    ret:=true;
@@ -436,7 +436,7 @@ Begin
       WorkReq.Death - WorkReq.Birth;
 
     if Buffer^.GetReq(WorkReq) then
-     begin {‚ ¡ãä¥à¥ ­ å®¤¨« áì § ï¢ª }
+     begin {В буфере находила�ь за�вка}
        WorkReq.FromSource^.MatWait := WorkReq.FromSource^.MatWait +
         CurTime-WorkReq.Birth;
        Device^.AddReq(@WorkReq,CurTime);
@@ -448,7 +448,7 @@ Begin
        SetNextSource;
      end;
    end
-  else {�«¨¦ ©è¥¥ ᮡë⨥ - £¥­¥à æ¨ï § ¯à®á }
+  else {Ближайшее �обытие - генераци� запро�а}
    begin
      CurTime := Sources^[NextSource]^.NewTime;
      if not Buffer^.AddReq(Sources^[NextSource]^.LastReq,Kicked) then
@@ -472,16 +472,16 @@ Procedure CModel.PrintValues;
 var
  i : integer;
 begin
-  WriteLn('Žâ­. â®ç­®áâì - ',Delta*100:0:0,'%, ¤®¢. ¨­â ¢ ª¢. - ',DovInt:0:2);
-  WriteLn('• à-ª  ¯®â®ª  ¯à¨¡®à  - ', Device^.Lambda:0:2);
-  WriteLn('ˆáâ.|‚ᣠ§ ï¢.|Žâª § ï¢.|‚ë¯ § ï¢.|P ®âª.  |Œ â. ®¦ | Ž¡é. ¢à.');
+  WriteLn('Отн. точно�ть - ',Delta*100:0:0,'%, дов. инт в кв. - ',DovInt:0:2);
+  WriteLn('Хар-ка потока прибора - ', Device^.Lambda:0:2);
+  WriteLn('И�т.|В�г за�в.|Отк за�в.|Вып за�в.|P отк.  |Мат. ож | Общ. вр.');
   for i := 0 to SourceCnt-1 do with Sources^[i]^ do
   begin
     write(Name:4,' ',TotalReq:9,' ',RefusedReq:9,' ',DoneReq:9,' ',100.0*RefusedReq/TotalReq:6:2,'%  ');
     if DoneReq <> 0 then Write(MatWait/DoneReq:8:3,' ') else Write('  ---    ');
     WriteLN(WaitTime:0:2);
   end;
-  WriteLn('Š®íä䍿¨¥­â ¯à®áâ®ï ¯à¨¡®à  - ',100*Device^.Stoppage/CurTime:0:2,'%');
+  WriteLn('Ко�ффициент про�то� прибора - ',100*Device^.Stoppage/CurTime:0:2,'%');
   WriteLN('---')
 end;{CModel.PrintValues}
 {------------------------------------------------------------------}

+ 13 - 13
PAS/!SPbSTU/Bump/BUMP.PAS

@@ -1,30 +1,30 @@
 {$G+}
 {Innocenty Enikeew Copyright 2001}
-{𥐰恐�洵�-丰洫凍瘔䭾剁 𠼻ㄝ鄖漎� 2d-bump mapping
- (足兩䭾剁 郊鉈╲悟 祚╞馲陋摵�) �咯桌兩� 嶍丞� 栽芥�-漅 豆 身乒� :) }
+{��郋迣�訄邾邾訄-迡迮邾郋郇���訄�邽� 訄郅迣郋�邽�邾訄 2d-bump mapping
+ (邽邾邽�訄�邽� 郇迮�郋赲郇郋邿 郈郋赲迮��郇郋��邽) �郅迣郋�邽�邾 �郈迮�� 郋�郕�迡訄-�郋 邽郱 邽郇迮�訄 :) }
 const
- bright  = 169; {𪂹� 兕漅蝑赤� 屣乒栂
- density = 128; {�尹蝁 屣乒恥恐� 荔潃栂
+ bright  = 169; {苤邽郅訄 邽��郋�郇邽郕訄 �赲迮�訄}
+ density = 128; {�訄迡邽�� �赲迮�郋赲郋迣郋 郈��郇訄}
 
-procedure SetMode(Mode:word);assembler; {𣞢�陋◥� ␡牐. 鄍成�. �� 能恥丞悚}
+procedure SetMode(Mode:word);assembler; {苺��訄郇郋赲郕訄 迣�訄�. �迮迠邽邾訄. �迮郱 郈�郋赲迮�郋郕}
 asm
   mov ax, Mode
   int 10h
 end;{SetMode}
 {-------------------}
-Procedure CreatePalette;assembler; {䴴坐�言 准早悟 �咧瘔
-                                    256-璇乒陋ㄝ 鄍成�}
+Procedure CreatePalette;assembler; {苤郋郱迡訄郇邽迮 郇�迠郇郋邿 郈訄郅邽��
+                                    256-�赲迮�郇郋迣郋 �迮迠邽邾訄}
   asm
-    mov dx, 3c6h        {𧎚飶 鄍ㄗ摵� �嶊� �咧瘔觱
-    mov al, 0ffh        { FF - 0-256 -S� �咧瘔栂
+    mov dx, 3c6h        {�郋�� �迮迣邽���訄 邾訄�郕邽 郈訄郅邽���}
+    mov al, 0ffh        { FF - 0-256 -赲�� 郈訄郅邽��訄}
     out dx, al 		{We will change all palette}
 
-    mov dx, 3c8h        {𧎚飶 c&� 陋洛� 璇乒� 井� �祠嶁 � �咧瘔翥
+    mov dx, 3c8h        {�郋�� 赲�訇郋�訄 郇郋邾迮�訄 �赲迮�訄 迡郅� 郱訄郈邽�邽 赲 郈訄郅邽���}
     mov al, 0
     out dx, al		{Beginning from first}
 
-    mov cx, 128         {吲� ~丰� 狙�-╳� 璇乒恥}
-    mov bx, 0           {𤨎芥擉� 身丰花}
+    mov cx, 128         {衪�郋 訇�迡迮� 郕郋郅-赲郋邾 �赲迮�郋赲}
+    mov bx, 0           {苠迮郕��邽邿 邽郇迡迮郕�}
     inc dx		{Write pal port  -  3c9h }
 @@1:
     mov al, bl          {R : 0-63}
@@ -99,7 +99,7 @@ begin
    end;
 end;
 {-----------------------}
-Procedure DrawBack;assembler; {𥐰桌兕恥� ~銗� � 磲�迪
+Procedure DrawBack;assembler; {��郋�邽�郋赲郕訄 訇��迮�訄 郇訄 �郕�訄郇}
 asm
 push es
 push ds

+ 11 - 11
PAS/!SPbSTU/Bump/BUMP2.PAS

@@ -1,28 +1,28 @@
 {$G+}
 {Innocenty Enikeew Copyright 2001}
-{𥐰恐�洵�-丰洫凍瘔䭾剁 𠼻ㄝ鄖漎� 2d-bump mapping
- (足兩䭾剁 郊鉈╲悟 祚╞馲陋摵�) �咯桌兩� 嶍丞� 栽芥�-漅 豆 身乒� :) }
+{��郋迣�訄邾邾訄-迡迮邾郋郇���訄�邽� 訄郅迣郋�邽�邾訄 2d-bump mapping
+ (邽邾邽�訄�邽� 郇迮�郋赲郇郋邿 郈郋赲迮��郇郋��邽) �郅迣郋�邽�邾 �郈迮�� 郋�郕�迡訄-�郋 邽郱 邽郇迮�訄 :) }
 const
- bright  = 253; {𪂹� 兕漅蝑赤� 屣乒栂
- density = 64; {�尹蝁 屣乒恥恐� 荔潃栂
+ bright  = 253; {苤邽郅訄 邽��郋�郇邽郕訄 �赲迮�訄}
+ density = 64; {�訄迡邽�� �赲迮�郋赲郋迣郋 郈��郇訄}
 
-procedure SetMode(Mode:word);assembler; {𣞢�陋◥� ␡牐. 鄍成�. �� 能恥丞悚}
+procedure SetMode(Mode:word);assembler; {苺��訄郇郋赲郕訄 迣�訄�. �迮迠邽邾訄. �迮郱 郈�郋赲迮�郋郕}
 asm
   mov ax, Mode
   int 10h
 end;{SetMode}
 {-------------------}
-Procedure CreatePalette; {䴴坐�言 准早悟 �咧瘔
-                                    256-璇乒陋ㄝ 鄍成�}
+Procedure CreatePalette; {苤郋郱迡訄郇邽迮 郇�迠郇郋邿 郈訄郅邽��
+                                    256-�赲迮�郇郋迣郋 �迮迠邽邾訄}
 var
  R,G,B,i : byte;
 begin
   asm
-    mov dx, 3c6h        {𧎚飶 鄍ㄗ摵� �嶊� �咧瘔觱
-    mov al, 0ffh        { FF - 0-256 -S� �咧瘔栂
+    mov dx, 3c6h        {�郋�� �迮迣邽���訄 邾訄�郕邽 郈訄郅邽���}
+    mov al, 0ffh        { FF - 0-256 -赲�� 郈訄郅邽��訄}
     out dx, al 		{We will change all palette}
 
-    mov dx, 3c8h        {𧎚飶 c&� 陋洛� 璇乒� 井� �祠嶁 � �咧瘔翥
+    mov dx, 3c8h        {�郋�� 赲�訇郋�訄 郇郋邾迮�訄 �赲迮�訄 迡郅� 郱訄郈邽�邽 赲 郈訄郅邽���}
     mov al, 0
     out dx, al		{Beginning from first}
   end;
@@ -97,7 +97,7 @@ begin
    end;
 end;
 {-----------------------}
-Procedure DrawBack;assembler; {𥐰桌兕恥� ~銗� � 磲�迪
+Procedure DrawBack;assembler; {��郋�邽�郋赲郕訄 訇��迮�訄 郇訄 �郕�訄郇}
 asm
 push es
 push ds

+ 7 - 7
PAS/!SPbSTU/CoolKey/CoolKey.pas

@@ -1,6 +1,6 @@
 {$G+}
-UNIT CoolKey; {“¤®¡­ ï,   £« ¢­®¥ ¡ëáâà ï à ¡®â  á ª« ¢¨ âãன.
-               �®«ì訥 ¢®§¬®¦­®áâ¨}
+UNIT CoolKey; {Удобна�, а главное бы�тра� работа � клавиатурой.
+               Большие возможно�ти}
                INTERFACE
 {$C FIXED PRELOAD PERMANENT}
 Uses Dos;
@@ -35,7 +35,7 @@ SC_E0,SC_E1,SC_E2,SC_E3,SC_E4,SC_E5,SC_E6,SC_E7,SC_E8,SC_E9,SC_EA,SC_EB,SC_EC,SC
 SC_F0,SC__F1,SC__F2,SC__F3,SC__F4,SC__F5,SC__F6,SC__F7,SC__F8,SC__F9,SC_FA,SC_FB,SC_FC,SC_FD,SC_FE,SC_FF);
 
 TKeyTable = array [EScanCode] of boolean;
-     PKeyTable = ^TKeyTable;  {ƒ« ¢­ë© ⨯ ¬®¤ã«ï, ¬ áᨢ ­ ¦ âëå ª­®¯®ª}
+     PKeyTable = ^TKeyTable;  {Главный тип модул�, ма��ив нажатых кнопок}
 
 CONST
  SC_NAME : array [EScanCode] of string [15] =
@@ -65,8 +65,8 @@ CONST
    'FA','FB','FC','FD','FE','FF');
 
 
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 
                 IMPLEMENTATION
 const
@@ -137,7 +137,7 @@ asm
    iret
 end;{NewInt09}
 {-------------------------------}
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
 begin
   if gInited then Exit;
   FillChar(KeyTable,256,0); {Zeroes keys table}
@@ -147,7 +147,7 @@ begin
   InitKeyBoard := @KeyTable;
 end;{Init keyboard}
 {------------------------}
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 begin
  if not gInited then exit;
  SetIntVec($09,OldInt09);

+ 7 - 7
PAS/!SPbSTU/EQuations.pas

@@ -1,8 +1,8 @@
 {
- „®áâã¯­ë¥ ®¯¥à æ¨¨:
-  +-*/ - áâ ­¤ àâ­®
-  ^    - ¢®§¢¥¤¥­¨¥ ¢ á⥯¥­ì
-  «î¡ë¥ ᨬ¢®«ë - ¢®á¯à¨­¨¬ îâáï ª ª •
+ До�тупные операции:
+  +-*/ - �тандартно
+  ^    - возведение в �тепень
+  любые �имволы - во�принимают�� как Х
 }
 
 const
@@ -260,9 +260,9 @@ begin
  ToPostfix(Tree,aOut);
 { Assign(OutPut,'9.out');
  Rewrite(OutPut);}
- WriteLn('‚ëà ¦¥­¨¥: ',aIn);
- WriteLn('‚ëà ¦¥­¨¥ ¢ ¯®áâ䨪á. ä®à¬¥: ',aOut);
- WriteLn('�¥§ã«ìâ â: ',CalculateTree(Tree, 1):0:3 );
+ WriteLn('Выражение: ',aIn);
+ WriteLn('Выражение в по�тфик�. форме: ',aOut);
+ WriteLn('Результат: ',CalculateTree(Tree, 1):0:3 );
  Close(output);
  DisposeTree(Tree);
 end.

+ 7 - 7
PAS/!SPbSTU/Graph/CoolKey.pas

@@ -1,6 +1,6 @@
 {$G+}
-UNIT CoolKey; {“¤®¡­ ï,   £« ¢­®¥ ¡ëáâà ï à ¡®â  á ª« ¢¨ âãன.
-               �®«ì訥 ¢®§¬®¦­®áâ¨}
+UNIT CoolKey; {Удобна�, а главное бы�тра� работа � клавиатурой.
+               Большие возможно�ти}
                INTERFACE
 {$C FIXED PRELOAD PERMANENT}
 Uses Dos;
@@ -35,7 +35,7 @@ SC_E0,SC_E1,SC_E2,SC_E3,SC_E4,SC_E5,SC_E6,SC_E7,SC_E8,SC_E9,SC_EA,SC_EB,SC_EC,SC
 SC_F0,SC__F1,SC__F2,SC__F3,SC__F4,SC__F5,SC__F6,SC__F7,SC__F8,SC__F9,SC_FA,SC_FB,SC_FC,SC_FD,SC_FE,SC_FF);
 
 TKeyTable = array [EScanCode] of boolean;
-     PKeyTable = ^TKeyTable;  {ƒ« ¢­ë© ⨯ ¬®¤ã«ï, ¬ áᨢ ­ ¦ âëå ª­®¯®ª}
+     PKeyTable = ^TKeyTable;  {Главный тип модул�, ма��ив нажатых кнопок}
 
 CONST
  SC_NAME : array [EScanCode] of string [15] =
@@ -65,8 +65,8 @@ CONST
    'FA','FB','FC','FD','FE','FF');
 
 
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 
                 IMPLEMENTATION
 const
@@ -142,7 +142,7 @@ asm
    iret
 end;{NewInt09}
 {-------------------------------}
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
 begin
   if gInited then Exit;
   FillChar(KeyTable,256,0); {Zeroes keys table}
@@ -152,7 +152,7 @@ begin
   InitKeyBoard := @KeyTable;
 end;{Init keyboard}
 {------------------------}
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 begin
  if not gInited then exit;
  SetIntVec($09,OldInt09);

+ 7 - 7
PAS/!SPbSTU/Graph/DRAW10H.PAS

@@ -1,6 +1,6 @@
 {$G+}
 unit Draw10H;
-{ˆá¯®«ì§ã¥áâáï ¤«ï ¡ëáâண® à¨á®¢ ­¨ï �Ž�Œ€‹œ�›• ®¡ê¥ªâ®¢ (ä३¬®¢)}
+{И�пользуе�т�� дл� бы�трого ри�овани� �ОРМ�ЛЬ�ЫХ объектов (фреймов)}
 INTERFACE
 VAR
  CurPage : byte Absolute $40:$62;
@@ -9,8 +9,8 @@ CONST
  PlaneMaskingPort = $03CE;
  SelectPlanePort  = $03C4;
   Procedure DrawSprite12H(xpos,ypos,xsize,ysize:word;Page:byte;BitPlane : pointer);
-   {�¨áã¥âáï á¯à ©â, «¥¦ é¨© ¯®  ¤à. BitPlane à §¬¥à®¬ xsize x ysize, ⮫쪮
-    ªà â­ë 8. �¨ª ª¨å ¯à®¢¥à®ª ­¥â. ‘¯à ©â - 4 ¡¨â®¢ë¥ ¯«®áª®á⨠B G R A}
+   {Ри�ует�� �прайт, лежащий по адр. BitPlane размером xsize x ysize, только
+    кратны 8. �икаких проверок нет. Спрайт - 4 битовые пло�ко�ти B G R A}
 IMPLEMENTATION
 {-----------------------------------------}
 Procedure DrawSprite12H;assembler;
@@ -56,13 +56,13 @@ push ds
  mov bx, 1
  mov si, word ptr BitPlane
 @1:
- mov dx, 03C4h  {ˆ­¤¥ªá ᨭåà®­¨§ â®à }
+ mov dx, 03C4h  {Индек� �инхронизатора}
  mov al, 2
- out dx, al  {�¥¦¨¬ ¢ë¡®à  á«®ï}
+ out dx, al  {Режим выбора �ло�}
  inc dx
- mov al, bl  {‚ë¡®à ⥪ã饣® á«®ï}
+ mov al, bl  {Выбор текущего �ло�}
  out dx, al
- shl bl, 1   {‚ë¡®à ­®¢®£® á«®ï}
+ shl bl, 1   {Выбор нового �ло�}
 
  les di, Beg
  mov cx, ysize

+ 11 - 11
PAS/!SPbSTU/Graph/OBJECTS.PAS

@@ -1,6 +1,6 @@
 {$R-}
 Unit Objects;
-{‡¤¥áì ­ å®¤ïâáï ¢á¥ ®¡ê¥ªâë (ª« ááë) ¨á¯®«ì§ã¥¬ë¥ ¢ ¯à®£à ¬¬¥}
+{Зде�ь наход�т�� в�е объекты (кла��ы) и�пользуемые в программе}
 {$DEFINE WaitRetrace}
 
 INTERFACE
@@ -50,9 +50,9 @@ type
    Params    : TParams;
    ZORDER    : Byte;
    Constructor Init;
-   Procedure   Frame(t:longInt);virtual; {�à®æ¥¤ãà , ¢ë¯®«­ï¥¬ ï ­  ª ¦¤®¬
-                                          è £¥, t - ¢à¥¬ï í⮣® è £  (®â१®ª)
-                                          „«ï  ¡á®«îâ­®á⨠¢à¥¬¥­¨}
+   Procedure   Frame(t:longInt);virtual; {Процедура, выполн�ема� на каждом
+                                          шаге, t - врем� �того шага (отрезок)
+                                          Дл� аб�олютно�ти времени}
    Destructor  Done;virtual;
  end;
 
@@ -120,7 +120,7 @@ type
    Destructor Done;
  Private
    WObjects        : PWOsList;
-   ToGone          : PWOsList; {‘⥪ ®¡ê¥ªâ®¢ ­  "㡨©á⢮"}
+   ToGone          : PWOsList; {Стек объектов на "убий�тво"}
   { BackGround }
    xpos, ypos      : PWordArray;
    xsize,ysize     : PWordArray;
@@ -442,7 +442,7 @@ begin
   Inherited Done;
 end; {tSting.Done}
 {-------------------------------------------------}
-{ ------  WOLRD OBJECT ( ã¯à ¢«ï¥â ¢á¥¬ ) --------}
+{ ------  WOLRD OBJECT ( управл�ет в�ем ) --------}
 Constructor TWorld.Init;
 var
   F: FILE;
@@ -501,14 +501,14 @@ begin
 {  LastObj^.Next^.Next:=nil;
   LAstObj:=LastObj^.Next;}
 
-  c:=WObjects; {ˆ­¨æ. "¡¥£ã­®ª"}
+  c:=WObjects; {Иниц. "бегунок"}
 
-  while (c^.next <> nil) and               {�®ª  ­¥ ¯®á«¥¤­¨© í«-â,}
-        (aOb^.ZORDER > c^.next^.o^.ZORDER) {¨ ¢ë¯®«­ï¥âáï ®âá®àâ¨à®¢ ­­®áâì}
+  while (c^.next <> nil) and               {Пока не по�ледний �л-т,}
+        (aOb^.ZORDER > c^.next^.o^.ZORDER) {и выполн�ет�� от�ортированно�ть}
     do c:=c^.next;
 
-  n^.next := c^.next; {‚áâ ¢«ï¥¬ ­ è í«-â ¬¥¦¤ã "¡¥£ã­ª®¬"}
-  c^.next := n;       {¨ á«¥¤ãî騬 §  ­¨¬}
+  n^.next := c^.next; {В�тавл�ем наш �л-т между "бегунком"}
+  c^.next := n;       {и �ледующим за ним}
 
   AddObject:=true;
 end;

+ 12 - 12
PAS/!SPbSTU/Graph/OBJECTS2.PAS

@@ -1,7 +1,7 @@
 {$R-}
 Unit Objects2;
-{‡¤¥áì ­ å®¤ïâáï ¢á¥ ®¡ê¥ªâë (ª« ááë) ¨á¯®«ì§ã¥¬ë¥ ¢ ¯à®£à ¬¬¥}
-{‚¥àá¨ï 2-ï, ¨á¯®«ì§ã¥âáï áâà ­¨æë}
+{Зде�ь наход�т�� в�е объекты (кла��ы) и�пользуемые в программе}
+{Вер�и� 2-�, и�пользует�� �траницы}
 
 INTERFACE
 Uses Graph, Draw10H;
@@ -55,9 +55,9 @@ type
    Started   : boolean;
 
    Constructor Init;
-   Procedure   Frame(t:longInt);virtual; {�à®æ¥¤ãà , ¢ë¯®«­ï¥¬ ï ­  ª ¦¤®¬
-                                          è £¥, t - ¢à¥¬ï í⮣® è £  (®â१®ª)
-                                          „«ï  ¡á®«îâ­®á⨠¢à¥¬¥­¨}
+   Procedure   Frame(t:longInt);virtual; {Процедура, выполн�ема� на каждом
+                                          шаге, t - врем� �того шага (отрезок)
+                                          Дл� аб�олютно�ти времени}
    Destructor  Done;virtual;
  end;
 
@@ -149,7 +149,7 @@ type
    Destructor  Done;
    private
    WObjects        : PWOsList;
-   ToGone          : PWOsList; {‘⥪ ®¡ê¥ªâ®¢ ­  "㡨©á⢮"}
+   ToGone          : PWOsList; {Стек объектов на "убий�тво"}
   { BackGround }
    xpos, ypos      : PWordArray;
    xsize,ysize     : PWordArray;
@@ -729,7 +729,7 @@ begin
 
   Inherited Done;
 end;
-{ ------  WOLRD OBJECT ( ã¯à ¢«ï¥â ¢á¥¬ ) --------}
+{ ------  WOLRD OBJECT ( управл�ет в�ем ) --------}
 Constructor TWorld.Init;
 var
   F: FILE;
@@ -852,14 +852,14 @@ begin
   n^.Next:=NIL;
   aOb^.World := @Self;
 
-  c:=WObjects; {ˆ­¨æ. "¡¥£ã­®ª"}
+  c:=WObjects; {Иниц. "бегунок"}
 
-  while (c^.next <> nil) and               {�®ª  ­¥ ¯®á«¥¤­¨© í«-â,}
-        (aOb^.ZORDER > c^.next^.o^.ZORDER) {¨ ¢ë¯®«­ï¥âáï ®âá®àâ¨à®¢ ­­®áâì}
+  while (c^.next <> nil) and               {Пока не по�ледний �л-т,}
+        (aOb^.ZORDER > c^.next^.o^.ZORDER) {и выполн�ет�� от�ортированно�ть}
     do c:=c^.next;
 
-  n^.next := c^.next; {‚áâ ¢«ï¥¬ ­ è í«-â ¬¥¦¤ã "¡¥£ã­ª®¬"}
-  c^.next := n;       {¨ á«¥¤ãî騬 §  ­¨¬}
+  n^.next := c^.next; {В�тавл�ем наш �л-т между "бегунком"}
+  c^.next := n;       {и �ледующим за ним}
 
   AddObject:=true;
 end;

+ 12 - 12
PAS/!SPbSTU/Graph/objects3.pas

@@ -1,7 +1,7 @@
 {$R-}
 Unit Objects3;
-{‡¤¥áì ­ å®¤ïâáï ¢á¥ ®¡ê¥ªâë (ª« ááë) ¨á¯®«ì§ã¥¬ë¥ ¢ ¯à®£à ¬¬¥}
-{‚¥àá¨ï 3ï, ¨á¯®«ì§ã¥âáï áâà ­¨æë ¨ ¯ ¬ïâì EMS}
+{Зде�ь наход�т�� в�е объекты (кла��ы) и�пользуемые в программе}
+{Вер�и� 3�, и�пользует�� �траницы и пам�ть EMS}
 
 INTERFACE
 Uses Graph, Draw10H,My_MEM;
@@ -62,9 +62,9 @@ type
    Started   : boolean;
 
    Constructor Init;
-   Procedure   Frame(t:longInt);virtual; {�à®æ¥¤ãà , ¢ë¯®«­ï¥¬ ï ­  ª ¦¤®¬
-                                          è £¥, t - ¢à¥¬ï í⮣® è £  (®â१®ª)
-                                          „«ï  ¡á®«îâ­®á⨠¢à¥¬¥­¨}
+   Procedure   Frame(t:longInt);virtual; {Процедура, выполн�ема� на каждом
+                                          шаге, t - врем� �того шага (отрезок)
+                                          Дл� аб�олютно�ти времени}
    Destructor  Done;virtual;
  end;
 
@@ -158,7 +158,7 @@ type
    Destructor  Done;
    private
    WObjects        : PWOsList;
-   ToGone          : PWOsList; {‘⥪ ®¡ê¥ªâ®¢ ­  "㡨©á⢮"}
+   ToGone          : PWOsList; {Стек объектов на "убий�тво"}
   { BackGround }
    xpos, ypos      : PWordArray;
    xsize,ysize     : PWordArray;
@@ -834,7 +834,7 @@ begin
 
   Inherited Done;
 end;
-{ ------  WOLRD OBJECT ( ã¯à ¢«ï¥â ¢á¥¬ ) --------}
+{ ------  WOLRD OBJECT ( управл�ет в�ем ) --------}
 Constructor TWorld.Init;
 var
   F: FILE;
@@ -983,14 +983,14 @@ begin
   n^.Next:=NIL;
   aOb^.World := @Self;
 
-  c:=WObjects; {ˆ­¨æ. "¡¥£ã­®ª"}
+  c:=WObjects; {Иниц. "бегунок"}
 
-  while (c^.next <> nil) and               {�®ª  ­¥ ¯®á«¥¤­¨© í«-â,}
-        (aOb^.ZORDER > c^.next^.o^.ZORDER) {¨ ¢ë¯®«­ï¥âáï ®âá®àâ¨à®¢ ­­®áâì}
+  while (c^.next <> nil) and               {Пока не по�ледний �л-т,}
+        (aOb^.ZORDER > c^.next^.o^.ZORDER) {и выполн�ет�� от�ортированно�ть}
     do c:=c^.next;
 
-  n^.next := c^.next; {‚áâ ¢«ï¥¬ ­ è í«-â ¬¥¦¤ã "¡¥£ã­ª®¬"}
-  c^.next := n;       {¨ á«¥¤ãî騬 §  ­¨¬}
+  n^.next := c^.next; {В�тавл�ем наш �л-т между "бегунком"}
+  c^.next := n;       {и �ледующим за ним}
 
   AddObject:=true;
 end;

+ 36 - 36
PAS/!SPbSTU/HeapSort.pas

@@ -1,26 +1,26 @@
 Program HeapSort;
-{�ã çâ®, ¤®¦¤ «¨áì ¢ë ¨ í⮩ ç¥à⮢®© ¯¨à ¬¨¤ «ì­®© á®àâ¨à®¢ª¨
- Ÿ ¢á¥-â ª¨ ¢à㡨«áï ª ª â ¬ çâ®. Žª § «®áì ¥é¥ ¡®«¥¥ á«®¦­® 祬 ª § «®áì
- ¢­ ç «¥. Žá­®¢­ ï ¨¤¥ï:
-   - „¥à¥¢  ­¨ª ª®£® ­¥â, ¨ ­¥ ¡ë«®!
-   - ‡ â® íâ  ¤®«¡ ­ ï ¯¨à ¬¨¤  á®é¥áâ¢ã¥â ¢ ⢮¥¬ ¬®§£ã
-      ‘ ‘€ŒŽƒŽ �€—€‹€ ‚ �Ž‹�ŽŒ �€‡Œ…�…!
-   - �ã ¨ ⨯  ¬ë á ­¨¦­¨å à冷¢ ¥¤¥¬ ¢ ¢¥àå, ­  ª ¦¤®¬ è £¥
-     ¯à®á¥¨¢ ï ⥪ã騩 í«-â ç¥à¥§ ¯¨à ¬¨¤ã (á¬. �. ‚¨àâ )
-   - ’ ª¨¬ å७®¬ ®â¥å ¢ á á¥à¥¤¨­ë ¤® á ¬®£® ¢¥àå , â.¥. ¯à®á¥¨¢ ¢á¥ í«-âë
-     ¬ë ¯®«ã稫¨ íâã ¤®«¡ ­­ãî ¯¨à ¬¨¤ã, á ãá«®¢¨¥¬ çâ® ¤¢  ᨭ  ¢á¥£¤  
-     ¡®«ìè¥ ®âæ !
-   - �®â®¬ - ᮢ¥à襭­® ¤à㣮© íâ ¯: á ¬  á®àâ¨à®¢ª  ¨ ¥áâì.
-     1) ’.ª. ¯¨à ¬¨¤  㤮¢«¥â¢®àï¥â ãá«. (A[i] < A[2i]) AND (A[i] < A[2i+1])
-        §­ ç¨â A[1] - á ¬ë© ¬ «¥­ìª¨© í«¥¬¥­â ! 
-     2) �ã ¬ë ¥£® ¨ ¯¨å ¥¬ ¢ ¯®á«¥¤­¨© í«-â ¯¨à ¬¨¤ë,   ¥£® - ¢ £®«®¢ã ¨ 
-        ¯à®á¥¨¢ ¥¬. ’ ª¨¬ ®¡à §®¬ ­  ¢¥àåã - ®¯ïâì á ¬ë© ¬ «¥­ìª¨©.
-        ˆ ¯à¨ í⮬ 㬥­è ¥¬ ¤«¨­ã ­ è¥© ¯¨à ¬¨¤ë ­  1
-     3) �®ª  ­ è  ¯¨à ¬¨¤  ¥é¥ ­¥ ¯ãáâ ï ¯®¢â®à塞.
-     4) ’ ª¨¬ å७®¬ - ã ­ á ®¡à â­® ®âá®àâ¨à®¢ ­­ë© ¬ áᨢ. �㠢ᥠáà ¢­¥­¨ï
-        - ­ ®¡®à®â - ¢®â ⥡¥ ¨ ¯àﬠï á®àâ¨à®¢ª !
+{�у что, дождали�ь вы и �той чертовой пирамидальной �ортировки
+ Я в�е-таки врубил�� как там что. Оказало�ь еще более �ложно чем казало�ь
+ вначале. О�новна� иде�:
+   - Дерева никакого нет, и не было!
+   - Зато �та долбана� пирамида �още�твует в твоем мозгу
+      С С�МОГО ��Ч�Л� В ПОЛ�ОМ Р�ЗМЕРЕ!
+   - �у и типа мы � нижних р�дов едем в верх, на каждом шаге
+     про�еива� текущий �л-т через пирамиду (�м. �. Вирта)
+   - Таким хреном отехав � �ередины до �амого верха, т.е. про�еив в�е �л-ты
+     мы получили �ту долбанную пирамиду, � у�ловием что два �ина в�егда 
+     больше отца!
+   - Потом - �овершенно другой �тап: �ама �ортировка и е�ть.
+     1) Т.к. пирамида удовлетвор�ет у�л. (A[i] < A[2i]) AND (A[i] < A[2i+1])
+        значит A[1] - �амый маленький �лемент ! 
+     2) �у мы его и пихаем в по�ледний �л-т пирамиды, а его - в голову и 
+        про�еиваем. Таким образом на верху - оп�ть �амый маленький.
+        И при �том уменшаем длину нашей пирамиды на 1
+     3) Пока наша пирамида еще не пу�та� повтор�ем.
+     4) Таким хреном - у на� обратно от�ортированный ма��ив. �у в�е �равнени�
+        - наоборот - вот тебе и пр�ма� �ортировка!
 
-PS. ¯®¯à®¡ãî íâ® ¢ ª®¤¥ ®âª®¬¬¥­â¨à®¢ âì ;)
+PS. попробую �то в коде откомментировать ;)
 }
 
 CONST
@@ -31,27 +31,27 @@ TYPE
 VAR
  Pir : array [1..ArLen] of Item;
 
-Procedure Sift(L,R:word);{�«¨­! Sift - ¯à®á¥¨¢ âì ¯®  ­£«¨æª¨!}
+Procedure Sift(L,R:word);{Блин! Sift - про�еивать по англицки!}
 var
  i, j : Index;
  x    : Item;
-{‚ í⮩ ¯à®æ¥¤ãॠᠬ®¥ ¢ ¦­®¥ - L ¨ R, ®­¨ ®â¢¥ç îâ ­¥ ¯à®áâ® §¨ ¨­¤¥ªáë,
-   ¥é¥ £®¢®àïâ ® ⮬, ª ª ï ç áâì ¯¨à ¬¨¤ë ᥩç á ॠ«ì­® à áᬠâਢ ¥âáï}
+{В �той процедуре �амое важное - L и R, они отвечают не про�то зи индек�ы,
+ а еще говор�т о том, кака� ча�ть пирамиды �ейча� реально ра��матривает��}
 begin
- i := L; {’®â, ª®â®àë© ¬¥­ï¥¬}
- j := 2*i; {�  ª®£® ¬®¦­® ¬¥­ïâì}
- x := Pir[L]; {Š®£® ¯à®á¥¨¢ ¥¬}
- if (j<R) AND (Pir[j] < Pir[J+1]) then Inc(j); {‚롥६ ­ ¨¡®«ì襣® ¯®â®¬ª }
+ i := L; {Тот, который мен�ем}
+ j := 2*i; {�а кого можно мен�ть}
+ x := Pir[L]; {Кого про�еиваем}
+ if (j<R) AND (Pir[j] < Pir[J+1]) then Inc(j); {Выберем наибольшего потомка}
  while (j<=R) and (x < Pir[j]) do
  begin
-  Pir[i] := Pir[j]; {Ž¡¬¥­ï«¨, ¤®áâ â®ç­® ¯à®áâ® § ¬¥­¨âì á¥¡ï ­  ᢮¥£® áë­ 
-                     â.ª á ¬ - x ¨ ®­ ­¨ªã¤  ­¥ ¤¥­¥âáï} 
-  i := j; {‘¯ãá⨫¨áì}
+  Pir[i] := Pir[j]; {Обмен�ли, до�таточно про�то заменить �еб� на �воего �ына
+                     т.к �ам - x и он никуда не денет��} 
+  i := j; {Спу�тили�ь}
   j := 2*i;
-  if (j<R) AND (Pir[j] < Pir[J+1]) then Inc(j); {‚롥६ ­ ¨¡®«ì襣® ¯®â®¬ª }
+  if (j<R) AND (Pir[j] < Pir[J+1]) then Inc(j); {Выберем наибольшего потомка}
  end;
- Pir[i] := x; {�ã ¢®â ¨ ¢¥à­¥¬ x ­  ¬¥áâ®}
-              {Ÿ �… �Ž�ˆŒ€ž �Ž—…Œ“ �’މ ‘’�ŽŠˆ �…’ ‚ ‚ˆ�’… }
+ Pir[i] := x; {�у вот и вернем x на ме�то}
+              {Я �Е ПО�ИМ�Ю ПОЧЕМУ ЭТОЙ СТРОКИ �ЕТ В ВИРТЕ }
 end;{Sift}
 {-------------------------}
 VAR
@@ -61,7 +61,7 @@ BEGIN
  Randomize;
  for l := 1 to ArLen do Pir[l] := Random(200);
 
- L := ArLen Div 2 + 1; {ˆ¤¥ï - ­¨¦­ïï ç áâì - ­¥ âॡã¥â ¯à®á¥¢ª¨}
+ L := ArLen Div 2 + 1; {Иде� - нижн�� ча�ть - не требует про�евки}
  R := ArLen;
 
  while L>1 do 
@@ -73,7 +73,7 @@ BEGIN
  While R > 1 do
  begin
   x := Pir[R];
-  Pir[R]:=Pir[1]; {ˆ¤¥ï ® ¢¯¨å¨¢ ­¨¨ ¢¥àå­¥£® ¢ ª®­¥æ ¯¨à ¬¨¤ë}
+  Pir[R]:=Pir[1]; {Иде� о впихивании верхнего в конец пирамиды}
   Pir[1] := x;    
   Dec(R);
   Sift(L,R);

+ 83 - 83
PAS/!SPbSTU/Kurs/CORE.PAS

@@ -1,17 +1,17 @@
-unit CORE; {Ÿ¤à® ¬®¤¥«¨ á¨áâ¥¬ë ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
+unit CORE; {Ядро модели �и�темы ма��ового об�луживани�}
                             INTERFACE
 type       
- PSource  = ^CSource; {“ª § â¥«ì ­  ¨áâ®ç­¨ª}
- PDevice  = ^CDevice; {“ª § â¥«ì ­  á¨á⥬㠮¡à ¡®âª¨ (ãáâனá⢮) }
- PBuffer  = ^CBuffer; {“ª § â¥«ì ­  ¡ãä¥à § ¯à®á®¢}
+ PSource  = ^CSource; {Указатель на и�точник}
+ PDevice  = ^CDevice; {Указатель на �и�тему обработки (у�трой�тво) }
+ PBuffer  = ^CBuffer; {Указатель на буфер запро�ов}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-TReq = record  {‡ ¯à®á ­  ®¡á«ã¦¨¢ ­¨¥}
-  Birth : real; {‚à¥¬ï ¯®ï¢«¥­¨ï § ¯à®á }
-  Death : real; {‚६ï ᬥà⨠§ ¯à®á  (®¡à ¡®â ­, «¨¡® ®âª«®­¥­)}
-  FromSource : PSource; {Šâ® ¯à®á¨«-â® ?}
-  ToDevice   : PDevice; {€ ᮡá⢥­­® ªã¤  ?}
+TReq = record  {Запро� на об�луживание}
+  Birth : real; {Врем� по�влени� запро�а}
+  Death : real; {Врем� �мерти запро�а (обработан, либо отклонен)}
+  FromSource : PSource; {Кто про�ил-то ?}
+  ToDevice   : PDevice; {� �об�твенно куда ?}
 end;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
@@ -25,109 +25,109 @@ PReq = ^TReq;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
 
-ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {’¨¯ë ¨áâ®ç­¨ª®¢}
+ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {Типы и�точников}
 
-CSource = object   {Ž¡ê¥ªâ - ¯à®á⥩訩 ¨áâ®ç­¨ª}
-  SType : ESOURCES; {Š ª®¢ ­ è ¨áâ®ç­¨ª? }
-  Name  : integer;  {€ ª ª ¥£® §®¢ãâ ?}
+CSource = object   {Объект - про�тейший и�точник}
+  SType : ESOURCES; {Каков наш и�точник? }
+  Name  : integer;  {� как его зовут ?}
 
-  LastTime : real;  {‚à¥¬ï £¥­¥à æ¨¨ ¯®á«¥¤­¥£® § ¯à®á }
-  LastReq  : TReq;  {�®á«¥¤­¨© ᣥ­¥à¨à®¢ ­­ë© § ¯à®á}
+  LastTime : real;  {Врем� генерации по�леднего запро�а}
+  LastReq  : TReq;  {По�ледний �генерированный запро�}
 
-  NewTime  : real;  {Œ®¬¥­â £¥­¥à æ¨¨ ­®¢®£® § ¯à®á }
+  NewTime  : real;  {Момент генерации нового запро�а}
   Lambda   : real;
 
-  TotalReq : longInt; {ޡ饥 ç¨á«® § ï¢®ª ®â ¨áâ®ç­¨ª }
-  DoneReq : longInt; {ç¨á«® ®¡à ¡®â ­­ëå § ï¢®ª ®â ¨áâ®ç­¨ª }  
-  RefusedReq:LongInt; {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
-  WaitTime : real; {ޡ饥 ¢à¥¬ï ¯à¥¡ë¢ ­¨ï ¢ á¨á⥬¥}
-  ProbRefuse:real; {‚¥à®ïâ­®áâì ®âª § } 
-  MatWait  : real; {Œ â¥¬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢ ¡ãä¥à¥}
+  TotalReq : longInt; {Общее чи�ло за�вок от и�точника}
+  DoneReq : longInt; {чи�ло обработанных за�вок от и�точника}  
+  RefusedReq:LongInt; {Чи�ло отклоненных за�вок}
+  WaitTime : real; {Общее врем� пребывани� в �и�теме}
+  ProbRefuse:real; {Веро�тно�ть отказа} 
+  MatWait  : real; {Математиче�кое ожидание в буфере}
 
-  Constructor Init(aName : Integer;aLambda:real); {Š®­áâàãªâ®à á ¨¬¥­¥¬}
-  Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
-  Procedure GenNewReq; {ƒ¥­¥à æ¨ï ­®¢®£® § ¯à®á }
+  Constructor Init(aName : Integer;aLambda:real); {Кон�труктор � именем}
+  Procedure Reset; {Сбро� в�ех �четчиков}
+  Procedure GenNewReq; {Генераци� нового запро�а}
   Destructor Done;virtual;
 end;{CSource}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CDevice = object   {Ž¡ê¥ªâ - ¯à®á⥩襥 ãá⮩á⢮ ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
-  LastTime : real; {‚à¥¬ï ¯®á«¥¤­¥£® § ¢¥à襭¨ï ®¡á«ã¦¨¢ ­¨ï}
+CDevice = object   {Объект - про�тейшее у�той�тво ма��ового об�луживани�}
+  LastTime : real; {Врем� по�леднего завершени� об�луживани�}
 
-  BegTime  : real; {‚à¥¬ï ­ ç «  ®¡á«ã¦¨¢ ­¨ï}
-  DoneTime : real; {‚६ï, ¢ ª®â®à®¥ § ª®­ç¨âáï ®¡à ¡®âª }
+  BegTime  : real; {Врем� начала об�луживани�}
+  DoneTime : real; {Врем�, в которое закончит�� обработка}
 
-  Stoppage : real; {ޡ饥 ¢à¥¬ï ¯à®áâ®ï ¯à¨¡®à }
+  Stoppage : real; {Общее врем� про�то� прибора}
 
-  IsWorking : boolean; {Žáãé¥á⢫ï¥âáï «¨ ®¡á«ã¦¨¢ ­¨¥ ?}
-  CurWorking : TReq; {’¥ªã騩 ®¡à ¡ â뢠¥¬ë© § ¯à®á}
+  IsWorking : boolean; {О�уще�твл�ет�� ли об�луживание ?}
+  CurWorking : TReq; {Текущий обрабатываемый запро�}
   Lambda   : real; 
 
   Constructor Init(aLambda:real); {}
-  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
-  Procedure Reset; {‘¡à®á ãáâà-¢ }
-  Function DoneWork:PReq; {‡ ¢¥à襭¨¥ ®¡à ¡®âª¨ ⥪ã饣® § ¯à®á , á ¥£® ¢®§¢à â®¬}
+  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
+  Procedure Reset; {Сбро� у�тр-ва}
+  Function DoneWork:PReq; {Завершение обработки текущего запро�а, � его возвратом}
   Destructor Done;
 end; {CDevice}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 EBuffers = (BUFFER_DUMMY, BUFFER_FIFO, BUFFER_LIFO);
 
-CBuffer = object      {�ãää¥à § ¯à®á®¢}
-  BufType      : EBuffers; {’¨¯ ¡ãä¥à }
-  BufferLength : integer; {„«¨­  ¡ãä¥à }
-  CellCount    : integer; {ˆ­¤¥ªá ⥪ã饩 ᢮¡®¤­®© ï祩ª¨}
-  Data         : PReqArray; {‘®¡á⢥­­® á ¬ ¡ãä¥à}
-  Constructor Init(aBufLen:integer); {ˆ­¨æ¨ «¨§ æ¨ï ¡ãä¥à }
-  Destructor Done;virtual;{„¥áâàãªâ®à, ®­ ¨ ¥áâì}
-  Function SetBufferSize(aNewSize:integer):boolean;{ˆ§¬¥­¥­¨¥ à §¬¥à  ¡ãä¥à }
-  Procedure FreeBuffer; {Žá¢®¡®¦¤¥­¨¥ ¢á¥£® ¡ãä¥à  áà §ã}
-  Function AddReq(var aNew, rKicked:TReq):boolean; {„®¡ ¢«ï¥âáï § ¯à®á ¢ ¡ãä¥à.
-   …᫨ ¨§ ¡ãä¥à  ª ª®©-â® § ¯à®á 㤠«¥­, â® ä-æ¨ï ¢®§¢à. false, ¨ ¢ rKicked -
-   § ¯à®á, ª®â®àë© ®âª«®­¥­}
-  Function GetReq(var rReq:TReq):boolean;virtual; {‚ëâ é¨âì ¨§ ¡ãä¥à  § ¯à®á,
-        ¥á«¨ ãᯥ譮 - true}
+CBuffer = object      {Буффер запро�ов}
+  BufType      : EBuffers; {Тип буфера}
+  BufferLength : integer; {Длина буфера}
+  CellCount    : integer; {Индек� текущей �вободной �чейки}
+  Data         : PReqArray; {Соб�твенно �ам буфер}
+  Constructor Init(aBufLen:integer); {Инициализаци� буфера}
+  Destructor Done;virtual;{Де�труктор, он и е�ть}
+  Function SetBufferSize(aNewSize:integer):boolean;{Изменение размера буфера}
+  Procedure FreeBuffer; {О�вобождение в�его буфера �разу}
+  Function AddReq(var aNew, rKicked:TReq):boolean; {Добавл�ет�� запро� в буфер.
+   Е�ли из буфера какой-то запро� удален, то ф-ци� возвр. false, и в rKicked -
+   запро�, который отклонен}
+  Function GetReq(var rReq:TReq):boolean;virtual; {Вытащить из буфера запро�,
+        е�ли у�пешно - true}
 end; {CBuffer}
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CModel = object {� è  ¬®¤¥«ì ‘ŒŽ} 
- Sources  : PSourceArr; {ˆáâ®ç­¨ª¨} 
- SourceCnt: integer;    {—¨á«® ¨áâ®ç­¨ª®¢}
- MaxSrc   : integer;    {� §¬¥à­®áâì ¬ áᨢ  ¨áâ®ç­¨ª®¢}
+CModel = object {�аша модель СМО} 
+ Sources  : PSourceArr; {И�точники} 
+ SourceCnt: integer;    {Чи�ло и�точников}
+ MaxSrc   : integer;    {Размерно�ть ма��ива и�точников}
 
- Buffer   : PBuffer;    {�ãä¥à}
- Device   : PDevice;    {“áâனá⢮}
+ Buffer   : PBuffer;    {Буфер}
+ Device   : PDevice;    {У�трой�тво}
 
- CurTime  : real;       {’¥ªã騩 ¬®¬¥­â ¢à¥¬¥­¨}
+ CurTime  : real;       {Текущий момент времени}
  Delta    : real;
  DovInt   : real;
 
- NextSource:integer;    {Š ª®© ¨§ ¨áâ®ç­¨ª®¢ - ¡ëáâ॥}
- RealizSteps:LongInt;   {�¥®¡å. ç¨á«® ॠ«¨§ æ¨©}
- CurStep  : LongInt;    {’¥ªã騩 è £}
+ NextSource:integer;    {Какой из и�точников - бы�трее}
+ RealizSteps:LongInt;   {�еобх. чи�ло реализаций}
+ CurStep  : LongInt;    {Текущий шаг}
 {}
- DoneCount,             {—¨á«® ®¡à ¡®â ­­ëå § ï¢®ª}
- RefusedCount,           {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
- TotalCount : integer;  {ޡ饥 ç¨á«® § ï¢®ª}
+ DoneCount,             {Чи�ло обработанных за�вок}
+ RefusedCount,           {Чи�ло отклоненных за�вок}
+ TotalCount : integer;  {Общее чи�ло за�вок}
 
- Working  : boolean;    {� ¡®â ¥â «¨ ¬®¤¥«ì ?}
+ Working  : boolean;    {Работает ли модель ?}
  WorkReq  : TReq;
 
- CalcVer  : boolean;    {�㦭® «¨ ¯®¤áç¨â뢠âì KMIN ¢ § ¢. ®â ¢¥à ?}
+ CalcVer  : boolean;    {�ужно ли под�читывать KMIN в зав. от вер ?}
 
  Constructor Init(aBegSrcCnt:integer;aDev:PDevice;aBuf:PBuffer;
                   aDel,aDov:Real);
- Function SetSourceCount(aNewCnt:integer):boolean; {“áâ ­®¢ª  ­®¢®£® ç¨á« 
-                                              ¨áâ®ç­¨ª®¢, á á®åà ­¥­¨¥¬ áâ àëå}
- Function AddNewSource(aNewSrc:PSource):boolean; {„®¡ ¢«¥­¨¥ ­®¢®£® ¨áâ®ç­¨ª }
- Procedure SetNextSource; {� å®¤¨â NextSource}
+ Function SetSourceCount(aNewCnt:integer):boolean; {У�тановка нового чи�ла
+                                              и�точников, � �охранением �тарых}
+ Function AddNewSource(aNewSrc:PSource):boolean; {Добавление нового и�точника}
+ Procedure SetNextSource; {�аходит NextSource}
  Function TestVer:boolean; {}
- Function RemoveSource(aName:integer):boolean; {“¤ «¥­¨¥ ¨áâ®ç­¨ª  ¨§ ¬®¤¥«¨}
- Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
+ Function RemoveSource(aName:integer):boolean; {Удаление и�точника из модели}
+ Procedure Reset; {Сбро� в�ех �четчиков}
  Procedure Start;
  Procedure PrintValues(var F:TEXT);
- Function Step:boolean; {Œ®¤¥«¨àã¥â á«¥¤ãî騩 è £, ¥á«¨ ¢ }
+ Function Step:boolean; {Моделирует �ледующий шаг, е�ли в }
  Destructor Done;
 end;
 {-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
@@ -181,7 +181,7 @@ begin
   IsWorking := false;
 end;{CDevice.Reset}
 {---------------------------}
-Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
+Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
 begin
   AddReq := false;
   if not isWorking then
@@ -248,12 +248,12 @@ end;{CBuffer.SetBufferSize}
 {-----------------------}
 Function CBuffer.AddReq(var aNew, rKicked:TReq):boolean;
 begin
-  if CellCount=BufferLength then {�  á ¬®¬ ¤¥«¥, â.ª á 0, â® ¡®«ìè¥}
+  if CellCount=BufferLength then {�а �амом деле, т.к � 0, то больше}
    begin
      AddReq := false;
      rKicked := Data^[0];
-     rKicked.Death := aNew.Birth; {‡ ¯à®á ®âª«®­¥­, ¢ ¬®¬¥­â, ª®£¤  ­®¢ë© ¯à¨¡ë«,
-                                    â.¥. ª®£¤  â®â ¡ë« á®§¤ ­}
+     rKicked.Death := aNew.Birth; {Запро� отклонен, в момент, когда новый прибыл,
+                                    т.е. когда тот был �оздан}
      Move(Data^[1],Data^[0], SizeOf(TReq) * (BufferLength-1));
      Data^[CellCount-1] := aNew;
    end
@@ -349,7 +349,7 @@ Begin
   Dec(SourceCnt);
 end;{CModel.RemoveSource}
 {------------------------------------------------------------------}
-Procedure CModel.SetNextSource; {� å®¤¨â NextSource}
+Procedure CModel.SetNextSource; {�аходит NextSource}
 var
  c      : integer;
 begin
@@ -415,7 +415,7 @@ var
 Begin
  Step := false;
  if Not Working then exit;
- ret := false; {‘ç¨â ¥¬, çâ® ¯à®¤®«¦ âì ­¥ ¡ã¤¥¬}
+ ret := false; {Считаем, что продолжать не будем}
 
  if (not CalcVer) AND (CurStep > RealizSteps) then exit;
 
@@ -435,7 +435,7 @@ Begin
       WorkReq.Death - WorkReq.Birth;
 
     if Buffer^.GetReq(WorkReq) then
-     begin {‚ ¡ãä¥à¥ ­ å®¤¨« áì § ï¢ª }
+     begin {В буфере находила�ь за�вка}
        WorkReq.FromSource^.MatWait := WorkReq.FromSource^.MatWait +
         CurTime-WorkReq.Birth;
        Device^.AddReq(@WorkReq,CurTime);
@@ -447,7 +447,7 @@ Begin
        SetNextSource;
      end;
    end
-  else {�«¨¦ ©è¥¥ ᮡë⨥ - £¥­¥à æ¨ï § ¯à®á }
+  else {Ближайшее �обытие - генераци� запро�а}
    begin
      CurTime := Sources^[NextSource]^.NewTime;
      if not Buffer^.AddReq(Sources^[NextSource]^.LastReq,Kicked) then
@@ -471,16 +471,16 @@ Procedure CModel.PrintValues(var F:Text);
 var
  i : integer;
 begin
-  WriteLn(F,'Žâ­. â®ç­®áâì - ',Delta*100:0:0,'%, ¤®¢. ¨­â ¢ ª¢. - ',DovInt:0:2);
-  WriteLn(F,'• à-ª  ¯®â®ª  ¯à¨¡®à  - ', Device^.Lambda:0:2);
-  WriteLn(F,'ˆáâ.|‚ᣠ§ ï¢.|Žâª § ï¢.|‚ë¯ § ï¢.|P ®âª.  |Œ â. ®¦ | Ž¡é. ¢à.');
+  WriteLn(F,'Отн. точно�ть - ',Delta*100:0:0,'%, дов. инт в кв. - ',DovInt:0:2);
+  WriteLn(F,'Хар-ка потока прибора - ', Device^.Lambda:0:2);
+  WriteLn(F,'И�т.|В�г за�в.|Отк за�в.|Вып за�в.|P отк.  |Мат. ож | Общ. вр.');
   for i := 0 to SourceCnt-1 do with Sources^[i]^ do
   begin
     write(F,Name:4,' ',TotalReq:9,' ',RefusedReq:9,' ',DoneReq:9,' ',100.0*RefusedReq/TotalReq:6:2,'%  ');
     if DoneReq <> 0 then Write(F,MatWait/DoneReq:8:3,' ') else Write(F,'  ---    ');
     WriteLN(F,WaitTime:0:2);
   end;
-  WriteLn(F,'Š®íä䍿¨¥­â ¯à®áâ®ï ¯à¨¡®à  - ',100*Device^.Stoppage/CurTime:0:2,'%');
+  WriteLn(F,'Ко�ффициент про�то� прибора - ',100*Device^.Stoppage/CurTime:0:2,'%');
   WriteLN(F,'---')
 end;{CModel.PrintValues}
 {------------------------------------------------------------------}

+ 7 - 7
PAS/!SPbSTU/Kurs/CoolKey.pas

@@ -1,6 +1,6 @@
 {$G+}
-UNIT CoolKey; {“¤®¡­ ï,   £« ¢­®¥ ¡ëáâà ï à ¡®â  á ª« ¢¨ âãன.
-               �®«ì訥 ¢®§¬®¦­®áâ¨}
+UNIT CoolKey; {Удобна�, а главное бы�тра� работа � клавиатурой.
+               Большие возможно�ти}
                INTERFACE
 {$C FIXED PRELOAD PERMANENT}
 Uses Dos;
@@ -41,7 +41,7 @@ SC_E0,SC_E1,SC_E2,SC_E3,SC_E4,SC_E5,SC_E6,SC_E7,SC_E8,SC_E9,SC_EA,SC_EB,SC_EC,SC
 SC_F0,SC__F1,SC__F2,SC__F3,SC__F4,SC__F5,SC__F6,SC__F7,SC__F8,SC__F9,SC_FA,SC_FB,SC_FC,SC_FD,SC_FE,SC_FF);
 
 TKeyTable = array [EScanCode] of boolean;
-PKeyTable = ^TKeyTable;  {ƒ« ¢­ë© ⨯ ¬®¤ã«ï, ¬ áᨢ ­ ¦ âëå ª­®¯®ª}
+PKeyTable = ^TKeyTable;  {Главный тип модул�, ма��ив нажатых кнопок}
 
 CONST
  SC_NAME : array [EScanCode] of string [15] =
@@ -71,10 +71,10 @@ CONST
    'FA','FB','FC','FD','FE','FF');
 
 
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
 Function GetChar(aSC : byte):Char;
 Function GetScanCode(var aC:EScanCode; var Pressed:Boolean):Boolean;
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 
                 IMPLEMENTATION
 const
@@ -232,7 +232,7 @@ begin
     GetScanCode := false;
    end;
 end;
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
 begin
   if gInited then Exit;
   FillChar(KeyTable,256,0); {Zeroes keys table}
@@ -246,7 +246,7 @@ begin
   InitKeyBoard := @KeyTable;
 end;{Init keyboard}
 {------------------------}
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 begin
  if not gInited then exit;
  SetIntVec($09,OldInt09);

+ 69 - 69
PAS/!SPbSTU/Kurs/UI.PAS

@@ -1,63 +1,63 @@
 Uses Core,Win2K2,CoolKey,ccontr;
-{ �祚恢扼布諝 洫扎咧 - 
-  Core    - 墰陋╲悟 洫扎恢 芥颬恥赤�, �洫 洫丰咧鉈�郃�.  (C) IE 2002
-  Win2K2  - �牐函丟爸� 洫扎恢, 祚 ╳妞恩陋摵�, �𠼻恐剁 角市悍恐豕 
+{ ��郈郋郅�郱�迮邾�迮 邾郋迡�郅邽 - 
+  Core    - ��郇郋赲郇郋邿 邾郋迡�郅� 郕���郋赲邽郕訄, �訄邾郋 邾郋迡迮郅邽�郋赲訄郇邽迮.  (C) IE 2002
+  Win2K2  - ��訄�邽�迮�郕邽邿 邾郋迡�郅�, 郈郋 赲郋郱邾郋迠郇郋��邽, 訄郇訄郅郋迣邽� 邽迡迮郅郋郅郋迣邽邽 
             Win32 API (C) Microsoft. Win2k2 (C) IE
-  CoolKey - 讃扎恢 郃妒柴芹恥郊╳� �&碲 � 物𨯂�睼鉈�, 兕祚恢扼乒摬 � Win2k2,
-            � ㄝ垣╲悟 能恐�洵� 郊恣摰尹� 井� 物𨯂�睼酯錼 狙凍�凌
-  CContr  - 讃扎恢 井� �&碲 � Win2k2, � 郊� 鄍𠼻豆恥�� 桑陋╲諝 礅布平碲
-            身漭馯巧� (EditBox, CheckBox, Button, XYPlot)}
+  CoolKey - �郋迡�郅� 郇邽郱郕郋�郕�郋赲郇迮赲郋邿 �訄訇郋�� � 郕郅訄赲邽訄���郋邿, 邽�郈郋郅�郱�迮��� 赲 Win2k2,
+            赲 迣郋郅郋赲郇郋邿 郈�郋迣�訄邾邾迮 郇迮郋訇�郋迡邽邾 迡郅� 郕郅訄赲邽訄���郇�� 郕郋郇��訄郇�
+  CContr  - �郋迡�郅� 迡郅� �訄訇郋�� � Win2k2, 赲 郇迮邾 �迮訄郅邽郱郋赲訄郇� 郋�郇郋赲郇�迮 �郅迮邾迮郇��
+            邽郇�迮��迮邿�訄 (EditBox, CheckBox, Button, XYPlot)}
  
 TYPE
- {䴴摵殷郃剁 嶁摵布觱
- EStatus = (ST_WAITING,  {𪂹摵布� 恩角�� 摵恷�}
-            ST_RUNNING,  {𪂹摵布� � 嵼摵. �&碲}
-            ST_FINISHED) {𪂹嶉布� �╞骭走� 洫丰咧鉈�郃囚;
+ {苤郋��郋�郇邽邽� �邽��迮邾�}
+ EStatus = (ST_WAITING,  {苤邽��迮邾訄 郋迠邽迡訄迮� ��訄��訄}
+            ST_RUNNING,  {苤邽��迮邾訄 赲 �郋��. �訄訇郋��}
+            ST_FINISHED) {苤邽�郅迮邾訄 郱訄赲迮��邽郅訄 邾郋迡迮郅邽�郋赲訄郇邽迮};
  
 const
  AStatus : array [EStatus] of string[15] = ('Waiting','Running', 'Finished');
- {䴴恣擖郃� � 嵼摵殷郃� 嶁摵布觱
+ {苤郋郋訇�迮郇邽� 郋 �郋��郋�郇邽邽 �邽��迮邾�}
 
 var
- TextOut   : Text;     {�帖恥諰 丰嶊鄖胼桌 漭花漅╳ㄝ c╳� 鄍扼恢�漅┘
- RunNum    : Integer;  {旿洛� �胯嶊� 嶁摵布� (祚 郊研 �妨函𡋾皸� �帖� c╳�}
- RunMode   : boolean;  {𨯫成� �&碲 (�&蝔�/栽�亢蝑諰)}
- Parent    : hWNd;     {Handle 桑陋╲恐� 悚� 能恐�洵觱
- Stat      : EStatus;  {𤨎芥擖� �&蟡� 嵼摵殷郃囚
- OCButtons : Array [1..2] of hWnd; {Handl'� 狎悖悚 [1] - OK, [2] - Stop}
- Edits     : array [1..9] of hWnd; {Handl'� 祚咱� ╰恕栂
- Checks    : array [0..5] of hWnd; {Handl'� c”�布錼 狎恥悖}
- Mode      : hWnd;                 {Handle 嵽咱芬桌� 鄍成�}
- Limits    : array [1..2] of hWnd; {Handl'� 漭花漅c� 祚咱� ␡�冽 ␡牐赤栂
- Realiz    : hWnd;                 {Handle 祚恬 ╰恕� 蝔嶉� 鄍𠼻豆䭾貝}
- RealNum   : UINT32;               {�洫 蝔嶉� 鄍𠼻豆䭾貝}
- CurReal   : UINT32;               {𤨎芥擉� 陋洛� �市豆䭾豕, 兕祚恢坏蜾摬 
-                                    兕恃蝔漭恢陋 井� �╲悔丞陋ㄝ �嶍鄍丰咱郃
-                                    漅蟡� � 鄍成洛 栽�云良
- Plot      : hWnd;                 {Handle ␡牐赤栂
-
-{��洧蟡嶊言 恣磪芬� - 礅布平碲 嶁摵布� �摽恥恐� 恣嶉膃芍�剁}
-{ 㴓兕�言  -  嶈. �ㄝ垣╳� 洫扎恬 Core.pas}
+ TextOut   : Text;     {苳訄邿郅郋赲�邿 迡迮�郕�邽郈�郋� �迮郕��郋赲郋迣郋 赲�赲郋迡訄 �迮郱�郅��訄�郋赲}
+ RunNum    : Integer;  {�郋邾迮� 郱訄郈��郕訄 �邽��迮邾� (郈郋 郇迮邾� �訄郱郅邽�訄���� �訄邿郅� 赲�赲郋迡訄}
+ RunMode   : boolean;  {�迮迠邽邾 �訄訇郋�� (�訄訇郋�邽邿/郋�郅訄迡郋�郇�邿)}
+ Parent    : hWNd;     {Handle 郋�郇郋赲郇郋迣郋 郋郕郇訄 郈�郋迣�訄邾邾�}
+ Stat      : EStatus;  {苠迮郕��迮迮 �訄訇郋�迮迮 �郋��郋�郇邽迮}
+ OCButtons : Array [1..2] of hWnd; {Handl'� 郕郇郋郈郋郕 [1] - OK, [2] - Stop}
+ Edits     : array [1..9] of hWnd; {Handl'� 郈郋郅迮邿 赲赲郋迡訄}
+ Checks    : array [0..5] of hWnd; {Handl'� 赲�訇邽�訄迮邾�� 郕郇郋赲郋郈}
+ Mode      : hWnd;                 {Handle �迮郅迮郕�郋�訄 �迮迠邽邾訄}
+ Limits    : array [1..2] of hWnd; {Handl'� �迮郕��郋赲�� 郈郋郅迮邿 迣�訄郇邽� 迣�訄�邽郕訄}
+ Realiz    : hWnd;                 {Handle 郈郋郅� 赲赲郋迡訄 �邽�郅訄 �迮訄郅邽郱訄�邽邿}
+ RealNum   : UINT32;               {苤訄邾郋 �邽�郅郋 �迮訄郅邽郱訄�邽邿}
+ CurReal   : UINT32;               {苠迮郕��邽邿 郇郋邾迮� �訄迮郅邽郱訄�邽邽, 邽�郈郋郅�郱迮���� 
+                                    邽�郅��邽�迮郅�郇郋 迡郅� �訄赲郇郋邾迮�郇郋迣郋 �訄�郈�迮迡迮郅迮郇邽
+                                    �郋�迮郕 赲 �迮迠邽邾迮 郋�郅訄迡郕邽}
+ Plot      : hWnd;                 {Handle 迣�訄�邽郕訄}
+
+{�邽郇訄邾邽�迮�郕邽迮 郋訇�迮郕�� - �郅迮邾迮郇�� �邽��迮邾� 邾訄��郋赲郋迣郋 郋訇�郅�迠邽赲訄郇邽�}
+{ �郈邽�訄郇邽迮  -  �邾. 郱訄迣郋郅郋赲郋郕 邾郋迡�郅� Core.pas}
  Model  : ^CModel;      
  Buffer : PBuffer;
  Device : PDevice;
  Srcs1, Srcs2,Srcs3 : PSource;
 
- BegVal,                {��恢卿�/狙郊蝑諝 妣-� 嶊桌桑漼 能芋桌栂
+ BegVal,                {�訄�訄郅�郇�迮/郕郋郇迮�郇�迮 郱郇-� �郕郋�郋��邽 郈�邽訇郋�訄}
  LastVal : Real;        
 
- Steps   : integer;     {秄嶉� �ㄝ� 栽 ��恢陋ㄝ � 狙郊蝑悔� 妣-� 能芋桌�
-                         (蝔嶉� 漅蟡� � ␡牐赤�)}
- CurStep : integer;     {𤨎芥擉� �ㄎ
+ Steps   : integer;     {虴邽�郅郋 �訄迣郋赲 郋� 郇訄�訄郅�郇郋迣郋 郕 郕郋郇迮�郇郋邾� 郱郇-� 郈�邽訇郋�訄
+                         (�邽�郅郋 �郋�迮郕 郇訄 迣�訄�邽郕迮)}
+ CurStep : integer;     {苠迮郕��邽邿 �訄迣}
 
- BufferSize : integer;  {�狙摵� ~銗� 洫丰咧}
- S1,S2,S3 : Real;       {麐桌桑漼 兕漅蝑赤恥}
+ BufferSize : integer;  {�邾郕郋��� 訇��迮�訄 邾郋迡迮郅邽}
+ S1,S2,S3 : Real;       {苤郕郋�郋��邽 邽��郋�郇邽郕郋赲}
 
- Delta, DovInt : real;  {�摵鉈帚� ╞鉈檺陋摵巧}
+ Delta, DovInt : real;  {�訄���郋邿郕邽 赲迮�郋��郇郋��迮邿}
 
 {----------------------------------------------------------------}
-Function GetFloat(aH:hWND):real; {𢛵酊璅� 摞兩諲�� ╞擖摵╞限恭 妣-� 豆 祚恬
-                                  ╰恕栂
+Function GetFloat(aH:hWND):real; {苳�郇郕�邽� ��邽��赲訄迮� 赲迮�迮��赲迮郇郇郋迮 郱郇-迮 邽郱 郈郋郅�
+                                  赲赲郋迡訄}
 var
  st : string;
  ret : real;
@@ -68,7 +68,7 @@ begin
   GetFloat := ret;
 end;
 {----------------------------------------------------------------}
-Procedure GetParams; {𤑳兩諲�言 S亙 妣-郃� 豆 祚咱� ╰恕栂
+Procedure GetParams; {苤�邽��赲訄郇邽迮 赲�迮� 郱郇-郇邽邿 邽郱 郈郋郅迮邿 赲赲郋迡訄}
 var
  st : string[50];
  i  : integer;
@@ -92,8 +92,8 @@ begin
     Val(st,Delta,i);
 end;
 
-Procedure InitModel; {��恢�� 身冽�咧�璅� 妣删平貝 洫丰咧 � 
-                      身冽�咧�璅� 尹�洧蟡嶊典 恣磪芬恥}
+Procedure InitModel; {�訄�訄郅�郇訄� 邽郇邽�邽訄郅邽郱訄�邽� 郱郇訄�迮郇邽邿 邾郋迡迮郅邽 邽 
+                      邽郇邽�邽訄郅邽郱訄�邽� 迡邽郇訄邾邽�迮�郕邽� 郋訇�迮郕�郋赲}
 begin
  Delta := 0.1;
  DovInt := 1.64;
@@ -120,8 +120,8 @@ begin
  Model^.AddNewSource(Srcs3);
 end;
 
-Procedure StartModel; {𥐰格奶蜬� 祚不栽恥爸 � 摵恷� 洫丰咧鉈�郃� 能� 
-                       膋𡵆�卿� 妣删平剁憢
+Procedure StartModel; {��郋�迮迡��訄 郈郋迡迣郋�郋赲郕邽 邽 ��訄��訄 邾郋迡迮郅邽�郋赲訄郇邽� 郈�邽 
+                       �郕訄郱訄郇郇�� 郱郇訄�迮郇邽��}
 var
  XY : TRPoint;
  nm : string;
@@ -184,10 +184,10 @@ begin
 end;
 
 
-{墰陋╲悟 恣�&瞀赤 嵼恣擖郃� (messages) 栽 嶁摵布� (␡牐函丟狙ㄝ 洫扎恬).
- 𧎚 角幼垣ㄗ� Win32 API (C) Microsoft - 桑陋╲𩤃 能格奶蜬� S巧 能恐�洵�,
- � 郊� ��乒摬 S� 鄍阸璅� � 丰抨潳剁 祚恢妙�漭恬, ��╲� � ╲蜾鄍限巧
- 垣ㄗ狙� 能恐�洵觱
+{��郇郋赲郇郋邿 郋訇�訄訇郋��邽郕 �郋郋訇�迮郇邽邿 (messages) 郋� �邽��迮邾� (迣�訄�邽�迮�郕郋迣郋 邾郋迡�郅�).
+ �郋 邽迡迮郋郅郋迣邽邽 Win32 API (C) Microsoft - 郋�郇郋赲郇訄� 郈�郋�迮迡��訄 赲�迮邿 郈�郋迣�訄邾邾�,
+ 赲 郇迮邿 郱訄迡訄迮��� 赲�� �迮訄郕�邽� 郇訄 迡迮邿��赲邽� 郈郋郅�郱郋赲訄�迮郅�, 郇訄�訄赲郇迮 � 赲郇���迮郇郇迮邿
+ 郅郋迣邽郕郋邿 郈�郋迣�訄邾邾�}
 Function WindowProc(ahWnd:HWND;aMsg,wParam,lParam:UINT32):UINT32;far;
 var
  ps : LPPAINTSTRUCT;
@@ -197,8 +197,8 @@ var
  rt : RECT;
 begin
   case aMsg of
-    WM_CREATE: {蘂遉恭 嵼恣擖郃� 祚嶉� 嵼坐�剁 悚�, � 郊� - 身冽�咧�璅
-                � 嵼坐�言 S亙 亢蟡酯典 悚悌 (祚咱� ╰恕�, � 能桃.)}
+    WM_CREATE: {�迮�赲郋迮 �郋郋訇�迮郇邽迮 郈郋�郅迮 �郋郱迡訄郇邽� 郋郕郇訄, 赲 郇迮邾 - 邽郇邽�邽訄郅邽郱訄�邽
+                邽 �郋郱迡訄郇邽迮 赲�迮� 迡郋�迮�郇邽� 郋郕郋郇 (郈郋郅迮邿 赲赲郋迡訄, 邽 郈�郋�.)}
      begin
       OCButtons[1] := CreateWindow('OK','BUTTON',WS_CHILD,
                    66,350,50,30,ahWnd,NULL);
@@ -304,7 +304,7 @@ begin
       AddOnFrameMessage(ahWnd);
      end;
     WM_COMMAND:
-     {繧�&瞀赤 狙�迨 栽 狙冢悍恥 (狎悖悚, 祚咱� ╰恕�, 狎悖悚 c&�)}
+     {�訇�訄訇郋��邽郕 郕郋邾訄郇迡 郋� 郕郋郇�郋郅郋赲 (郕郇郋郈郋郕, 郈郋郅迮邿 赲赲郋迡訄, 郕郇郋郈郋郕 赲�訇郋�訄)}
      begin
       case wParam of
        1: if (lParam = 0)  and (Stat <> ST_RUNNING) then begin {OK button pressed}
@@ -316,7 +316,7 @@ begin
             PostMessage(ahWnd,WM_PAINT,0,0);
             PostMessage(OCButtons[2],WM_PAINT,0,0);
           end;
-       2: if lParam = 0 then {��� 狎悖� STOP}
+       2: if lParam = 0 then {郇訄迠訄�訄 郕郇郋郈郕訄 STOP}
            begin
             if Stat = ST_RUNNING then
              begin
@@ -330,7 +330,7 @@ begin
             else
               PostMessage(ahWnd,WM_DESTROY,0,0);
            end;
-        90: if lParam = 0 then begin {��/c物 鄍成� 栽�云良
+        90: if lParam = 0 then begin {�郕郅/赲�郕郅 �迮迠邽邾 郋�郅訄迡郕邽}
               RunMode := not RunMode;
               for i := 3 to 5 do
                 SendMessage(Checks[i],WM_SETVISIBLE,UINT32(RunMode),0);
@@ -342,9 +342,9 @@ begin
       end;
      end;
     WM_ONFRAME:
-    {墰陋╲悟 恣�&瞀赤 S巧 能恐�洵�, 坐丟� - ╲蜾鄍哨� 垣ㄗ�. �投�鍒摬
-     洛漅月 恣磪芬恥 洫丰咧 井� 桑蜒丟潳咱郃� 洫丰咧鉈�郃�. �爬� 能悄摎恕兩
-     亢�◤平言 漅蟡� � ␡牐赤, c╳� 漭花漅╳� 身銈酮䭾豕 � �帖.}
+    {��郇郋赲郇郋邿 郋訇�訄訇郋��邽郕 赲�迮邿 郈�郋迣�訄邾邾�, 郱迡迮�� - 赲郇���迮郇�� 郅郋迣邽郕訄. ��郱�赲訄����
+     邾迮�郋迡� 郋訇�迮郕�郋赲 邾郋迡迮郅邽 迡郅� 郋���迮��赲郅迮郇邽� 邾郋迡迮郅邽�郋赲訄郇邽�. 苠訄郕迠迮 郈�郋邽��郋迡邽�
+     迡郋訇訄赲郅迮郇邽迮 �郋�迮郕 郇訄 迣�訄�邽郕, 赲�赲郋迡 �迮郕��郋赲郋邿 邽郇�郋�邾訄�邽邽 赲 �訄邿郅.}
      begin
        if Stat = ST_RUNNING then
         begin
@@ -425,8 +425,8 @@ begin
         end;
      end;
     WM_DESTROY:
-    {䴴恣擖郃�, 能典恕毉孕 砲鄍� �╞骭平言� �&碲 能恐�洵�, 
-     坐丟� 能悄摎恕兩 桑╳&忖平言 �穿漼 � 蒤函漅戎郃� 恣磪芬恥 洫丰咧}
+    {苤郋郋訇�迮郇邽迮, 郈�邽�郋迡��迮迮 郈迮�迮迡 郱訄赲迮��迮郇邽迮邾 �訄訇郋�� 郈�郋迣�訄邾邾�, 
+     郱迡迮�� 郈�郋邽��郋迡邽� 郋�赲郋訇郋迠迡迮郇邽迮 郈訄邾��邽 邽 �郇邽��郋迠迮郇邽迮 郋訇�迮郕�郋赲 邾郋迡迮郅邽}
      begin
       if Stat <> ST_WAITING then begin
         Dispose(Model,Done);
@@ -437,12 +437,12 @@ begin
       PostQuitMessage(ahwnd);
      end;
     WM_KEYDOWN:
-    {𨯫阸璅� � ��漼� 物𨯂刻� 物𨯂�睼鳪}
+    {�迮訄郕�邽� 郇訄 郇訄迠訄�邽迮 郕郅訄赲邽�邽 郕郅訄赲邽訄����}
       if wParam = ord(SC_ESCAPE) then PostMessage(ahWnd,WM_DESTROY,0,0);
 
     WM_PAINT:
-    {繧�&瞀赤 能桌兕恥爸 悚�. �╳尹� 漅恢狙 摵罱蝁 洫丰咧鉈�郃�, S
-     桑�恢�� 能桌兕恥� c祚垠鴷皸� 亢蟡酯足� 悚�洧 �洫摵殷漭恢陋}
+    {�訇�訄訇郋��邽郕 郈�郋�邽�郋赲郕邽 郋郕郇訄. ��赲郋迡邽� �郋郅�郕郋 ��訄��� 邾郋迡迮郅邽�郋赲訄郇邽�, 赲�
+     郋��訄郅�郇訄� 郈�郋�邽�郋赲郕訄 赲�郈郋郅郇�迮��� 迡郋�迮�郇邽邾邽 郋郕郇訄邾邽 �訄邾郋��郋��迮郅�郇郋}
      begin
        ps := BeginPaint(ahWNd);
         wSetColor(ps,GlobalPalette.WindowFontColor);
@@ -458,19 +458,19 @@ begin
 end;
 
 
-{���.}
+{������.}
 begin
- if InitWin2K2 = ERR_OK then {�冽. ␡牐函丟狙� 祚戶兕漭禺}
+ if InitWin2K2 = ERR_OK then {�郇邽�. 迣�訄�邽�迮�郕郋邿 郈郋迡�邽��迮邾�}
  if RegisterClass('MSMO',WindowProc) = ERR_OK then
- {𨯫ㄗ摵�璅� 物��, � �爸� 恣�&瞀赤悔 嵼㏑漼屈
+ {�迮迣邽���訄�邽� 郕郅訄��訄, � �訄郕邽邾 郋訇�訄訇郋��邽郕郋邾 �郋訇��邽邿}
   begin
-    InitCommonControls; {�冽�咧�璅� 摵��飶卿� 物�嵼┘
+    InitCommonControls; {�郇邽�邽訄郅邽郱訄�邽� ��訄郇迡訄��郇�� 郕郅訄��郋赲}
     Parent:=CreateWindow('Configuration','MSMO',
                          WS_TITLE OR WS_SIZEABLE OR WS_MINMAX,
                          10,10,620,420,
                          NULL,NULL);
-    {䴴坐�言 桑陋╲恐� 悚�}    
-    MainRunLoop; {墰陋╲悟 璅物 能恐�洵觱
+    {苤郋郱迡訄郇邽迮 郋�郇郋赲郇郋迣郋 郋郕郇訄}    
+    MainRunLoop; {��郇郋赲郇郋邿 �邽郕郅 郈�郋迣�訄邾邾�}
   end;
- DoneWin2K2; {�╞骭平言 �&碲 ␡牐函丟狙� 祚戶兕漭禺}
+ DoneWin2K2; {�訄赲迮��迮郇邽迮 �訄訇郋�� 迣�訄�邽�迮�郕郋邿 郈郋迡�邽��迮邾�}
 end.

+ 82 - 82
PAS/!SPbSTU/MSMO/CORE.PAS

@@ -1,17 +1,17 @@
-unit CORE; {Ÿ¤à® ¬®¤¥«¨ á¨áâ¥¬ë ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
+unit CORE; {Ядро модели �и�темы ма��ового об�луживани�}
                             INTERFACE
 type       
- PSource  = ^CSource; {“ª § â¥«ì ­  ¨áâ®ç­¨ª}
- PDevice  = ^CDevice; {“ª § â¥«ì ­  á¨á⥬㠮¡à ¡®âª¨ (ãáâனá⢮) }
- PBuffer  = ^CBuffer; {“ª § â¥«ì ­  ¡ãä¥à § ¯à®á®¢}
+ PSource  = ^CSource; {Указатель на и�точник}
+ PDevice  = ^CDevice; {Указатель на �и�тему обработки (у�трой�тво) }
+ PBuffer  = ^CBuffer; {Указатель на буфер запро�ов}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-TReq = record  {‡ ¯à®á ­  ®¡á«ã¦¨¢ ­¨¥}
-  Birth : real; {‚à¥¬ï ¯®ï¢«¥­¨ï § ¯à®á }
-  Death : real; {‚६ï ᬥà⨠§ ¯à®á  (®¡à ¡®â ­, «¨¡® ®âª«®­¥­)}
-  FromSource : PSource; {Šâ® ¯à®á¨«-â® ?}
-  ToDevice   : PDevice; {€ ᮡá⢥­­® ªã¤  ?}
+TReq = record  {Запро� на об�луживание}
+  Birth : real; {Врем� по�влени� запро�а}
+  Death : real; {Врем� �мерти запро�а (обработан, либо отклонен)}
+  FromSource : PSource; {Кто про�ил-то ?}
+  ToDevice   : PDevice; {� �об�твенно куда ?}
 end;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
@@ -25,107 +25,107 @@ PReq = ^TReq;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
 
-ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {’¨¯ë ¨áâ®ç­¨ª®¢}
+ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {Типы и�точников}
 
-CSource = object   {Ž¡ê¥ªâ - ¯à®á⥩訩 ¨áâ®ç­¨ª}
-  SType : ESOURCES; {Š ª®¢ ­ è ¨áâ®ç­¨ª? }
-  Name  : integer;  {€ ª ª ¥£® §®¢ãâ ?}
+CSource = object   {Объект - про�тейший и�точник}
+  SType : ESOURCES; {Каков наш и�точник? }
+  Name  : integer;  {� как его зовут ?}
 
-  LastTime : real;  {‚à¥¬ï £¥­¥à æ¨¨ ¯®á«¥¤­¥£® § ¯à®á }
-  LastReq  : TReq;  {�®á«¥¤­¨© ᣥ­¥à¨à®¢ ­­ë© § ¯à®á}
+  LastTime : real;  {Врем� генерации по�леднего запро�а}
+  LastReq  : TReq;  {По�ледний �генерированный запро�}
 
-  NewTime  : real;  {Œ®¬¥­â £¥­¥à æ¨¨ ­®¢®£® § ¯à®á }
+  NewTime  : real;  {Момент генерации нового запро�а}
   Lambda   : real;
 
-  TotalReq : longInt; {ޡ饥 ç¨á«® § ï¢®ª ®â ¨áâ®ç­¨ª }
-  DoneReq : longInt; {ç¨á«® ®¡à ¡®â ­­ëå § ï¢®ª ®â ¨áâ®ç­¨ª }  
-  RefusedReq:LongInt; {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
-  WaitTime : real; {ޡ饥 ¢à¥¬ï ¯à¥¡ë¢ ­¨ï ¢ á¨á⥬¥}
-  ProbRefuse:real; {‚¥à®ïâ­®áâì ®âª § } 
-  MatWait  : real; {Œ â¥¬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢ ¡ãä¥à¥}
+  TotalReq : longInt; {Общее чи�ло за�вок от и�точника}
+  DoneReq : longInt; {чи�ло обработанных за�вок от и�точника}  
+  RefusedReq:LongInt; {Чи�ло отклоненных за�вок}
+  WaitTime : real; {Общее врем� пребывани� в �и�теме}
+  ProbRefuse:real; {Веро�тно�ть отказа} 
+  MatWait  : real; {Математиче�кое ожидание в буфере}
 
-  Constructor Init(aName : Integer;aLambda:real); {Š®­áâàãªâ®à á ¨¬¥­¥¬}
-  Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
-  Procedure GenNewReq; {ƒ¥­¥à æ¨ï ­®¢®£® § ¯à®á }
+  Constructor Init(aName : Integer;aLambda:real); {Кон�труктор � именем}
+  Procedure Reset; {Сбро� в�ех �четчиков}
+  Procedure GenNewReq; {Генераци� нового запро�а}
   Destructor Done;virtual;
 end;{CSource}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CDevice = object   {Ž¡ê¥ªâ - ¯à®á⥩襥 ãá⮩á⢮ ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
-  LastTime : real; {‚à¥¬ï ¯®á«¥¤­¥£® § ¢¥à襭¨ï ®¡á«ã¦¨¢ ­¨ï}
+CDevice = object   {Объект - про�тейшее у�той�тво ма��ового об�луживани�}
+  LastTime : real; {Врем� по�леднего завершени� об�луживани�}
 
-  BegTime  : real; {‚à¥¬ï ­ ç «  ®¡á«ã¦¨¢ ­¨ï}
-  DoneTime : real; {‚६ï, ¢ ª®â®à®¥ § ª®­ç¨âáï ®¡à ¡®âª }
+  BegTime  : real; {Врем� начала об�луживани�}
+  DoneTime : real; {Врем�, в которое закончит�� обработка}
 
-  Stoppage : real; {ޡ饥 ¢à¥¬ï ¯à®áâ®ï ¯à¨¡®à }
+  Stoppage : real; {Общее врем� про�то� прибора}
 
-  IsWorking : boolean; {Žáãé¥á⢫ï¥âáï «¨ ®¡á«ã¦¨¢ ­¨¥ ?}
-  CurWorking : TReq; {’¥ªã騩 ®¡à ¡ â뢠¥¬ë© § ¯à®á}
+  IsWorking : boolean; {О�уще�твл�ет�� ли об�луживание ?}
+  CurWorking : TReq; {Текущий обрабатываемый запро�}
   Lambda   : real; 
 
   Constructor Init(aLambda:real); {}
-  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
-  Procedure Reset; {‘¡à®á ãáâà-¢ }
-  Function DoneWork:PReq; {‡ ¢¥à襭¨¥ ®¡à ¡®âª¨ ⥪ã饣® § ¯à®á , á ¥£® ¢®§¢à â®¬}
+  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
+  Procedure Reset; {Сбро� у�тр-ва}
+  Function DoneWork:PReq; {Завершение обработки текущего запро�а, � его возвратом}
   Destructor Done;
 end; {CDevice}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 EBuffers = (BUFFER_DUMMY, BUFFER_FIFO, BUFFER_LIFO);
 
-CBuffer = object      {�ãää¥à § ¯à®á®¢}
-  BufType      : EBuffers; {’¨¯ ¡ãä¥à }
-  BufferLength : integer; {„«¨­  ¡ãä¥à }
-  CellCount    : integer; {ˆ­¤¥ªá ⥪ã饩 ᢮¡®¤­®© ï祩ª¨}
-  Data         : PReqArray; {‘®¡á⢥­­® á ¬ ¡ãä¥à}
-  Constructor Init(aBufLen:integer); {ˆ­¨æ¨ «¨§ æ¨ï ¡ãä¥à }
-  Destructor Done;virtual;{„¥áâàãªâ®à, ®­ ¨ ¥áâì}
-  Function SetBufferSize(aNewSize:integer):boolean;{ˆ§¬¥­¥­¨¥ à §¬¥à  ¡ãä¥à }
-  Procedure FreeBuffer; {Žá¢®¡®¦¤¥­¨¥ ¢á¥£® ¡ãä¥à  áà §ã}
-  Function AddReq(var aNew, rKicked:TReq):boolean; {„®¡ ¢«ï¥âáï § ¯à®á ¢ ¡ãä¥à.
-   …᫨ ¨§ ¡ãä¥à  ª ª®©-â® § ¯à®á 㤠«¥­, â® ä-æ¨ï ¢®§¢à. false, ¨ ¢ rKicked -
-   § ¯à®á, ª®â®àë© ®âª«®­¥­}
-  Function GetReq(var rReq:TReq):boolean;virtual; {‚ëâ é¨âì ¨§ ¡ãä¥à  § ¯à®á,
-        ¥á«¨ ãᯥ譮 - true}
+CBuffer = object      {Буффер запро�ов}
+  BufType      : EBuffers; {Тип буфера}
+  BufferLength : integer; {Длина буфера}
+  CellCount    : integer; {Индек� текущей �вободной �чейки}
+  Data         : PReqArray; {Соб�твенно �ам буфер}
+  Constructor Init(aBufLen:integer); {Инициализаци� буфера}
+  Destructor Done;virtual;{Де�труктор, он и е�ть}
+  Function SetBufferSize(aNewSize:integer):boolean;{Изменение размера буфера}
+  Procedure FreeBuffer; {О�вобождение в�его буфера �разу}
+  Function AddReq(var aNew, rKicked:TReq):boolean; {Добавл�ет�� запро� в буфер.
+   Е�ли из буфера какой-то запро� удален, то ф-ци� возвр. false, и в rKicked -
+   запро�, который отклонен}
+  Function GetReq(var rReq:TReq):boolean;virtual; {Вытащить из буфера запро�,
+        е�ли у�пешно - true}
 end; {CBuffer}
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CModel = object {� è  ¬®¤¥«ì ‘ŒŽ} 
- Sources  : PSourceArr; {ˆáâ®ç­¨ª¨} 
- SourceCnt: integer;    {—¨á«® ¨áâ®ç­¨ª®¢}
- MaxSrc   : integer;    {� §¬¥à­®áâì ¬ áᨢ  ¨áâ®ç­¨ª®¢}
+CModel = object {�аша модель СМО} 
+ Sources  : PSourceArr; {И�точники} 
+ SourceCnt: integer;    {Чи�ло и�точников}
+ MaxSrc   : integer;    {Размерно�ть ма��ива и�точников}
 
- Buffer   : PBuffer;    {�ãä¥à}
- Device   : PDevice;    {“áâனá⢮}
+ Buffer   : PBuffer;    {Буфер}
+ Device   : PDevice;    {У�трой�тво}
 
- CurTime  : real;       {’¥ªã騩 ¬®¬¥­â ¢à¥¬¥­¨}
+ CurTime  : real;       {Текущий момент времени}
  Delta    : real;
  DovInt   : real;
 
- NextSource:integer;    {Š ª®© ¨§ ¨áâ®ç­¨ª®¢ - ¡ëáâ॥}
- RealizSteps:LongInt;   {�¥®¡å. ç¨á«® ॠ«¨§ æ¨©}
- CurStep  : LongInt;    {’¥ªã騩 è £}
+ NextSource:integer;    {Какой из и�точников - бы�трее}
+ RealizSteps:LongInt;   {�еобх. чи�ло реализаций}
+ CurStep  : LongInt;    {Текущий шаг}
 {}
- DoneCount,             {—¨á«® ®¡à ¡®â ­­ëå § ï¢®ª}
- RefusedCount,           {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
- TotalCount : integer;  {ޡ饥 ç¨á«® § ï¢®ª}
+ DoneCount,             {Чи�ло обработанных за�вок}
+ RefusedCount,           {Чи�ло отклоненных за�вок}
+ TotalCount : integer;  {Общее чи�ло за�вок}
 
- Working  : boolean;    {� ¡®â ¥â «¨ ¬®¤¥«ì ?}
+ Working  : boolean;    {Работает ли модель ?}
  WorkReq  : TReq;
 
  Constructor Init(aBegSrcCnt:integer;aDev:PDevice;aBuf:PBuffer;
                   aDel,aDov:Real);
- Function SetSourceCount(aNewCnt:integer):boolean; {“áâ ­®¢ª  ­®¢®£® ç¨á« 
-                                              ¨áâ®ç­¨ª®¢, á á®åà ­¥­¨¥¬ áâ àëå}
- Function AddNewSource(aNewSrc:PSource):boolean; {„®¡ ¢«¥­¨¥ ­®¢®£® ¨áâ®ç­¨ª }
- Procedure SetNextSource; {� å®¤¨â NextSource}
+ Function SetSourceCount(aNewCnt:integer):boolean; {У�тановка нового чи�ла
+                                              и�точников, � �охранением �тарых}
+ Function AddNewSource(aNewSrc:PSource):boolean; {Добавление нового и�точника}
+ Procedure SetNextSource; {�аходит NextSource}
  Function TestVer:boolean; {}
- Function RemoveSource(aName:integer):boolean; {“¤ «¥­¨¥ ¨áâ®ç­¨ª  ¨§ ¬®¤¥«¨}
- Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
+ Function RemoveSource(aName:integer):boolean; {Удаление и�точника из модели}
+ Procedure Reset; {Сбро� в�ех �четчиков}
  Procedure Start;
  Procedure PrintValues(var F:TEXT);
- Function Step:boolean; {Œ®¤¥«¨àã¥â á«¥¤ãî騩 è £, ¥á«¨ ¢ }
+ Function Step:boolean; {Моделирует �ледующий шаг, е�ли в }
  Destructor Done;
 end;
 {-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
@@ -179,7 +179,7 @@ begin
   IsWorking := false;
 end;{CDevice.Reset}
 {---------------------------}
-Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
+Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
 begin
   AddReq := false;
   if not isWorking then
@@ -246,12 +246,12 @@ end;{CBuffer.SetBufferSize}
 {-----------------------}
 Function CBuffer.AddReq(var aNew, rKicked:TReq):boolean;
 begin
-  if CellCount=BufferLength then {�  á ¬®¬ ¤¥«¥, â.ª á 0, â® ¡®«ìè¥}
+  if CellCount=BufferLength then {�а �амом деле, т.к � 0, то больше}
    begin
      AddReq := false;
      rKicked := Data^[0];
-     rKicked.Death := aNew.Birth; {‡ ¯à®á ®âª«®­¥­, ¢ ¬®¬¥­â, ª®£¤  ­®¢ë© ¯à¨¡ë«,
-                                    â.¥. ª®£¤  â®â ¡ë« á®§¤ ­}
+     rKicked.Death := aNew.Birth; {Запро� отклонен, в момент, когда новый прибыл,
+                                    т.е. когда тот был �оздан}
      Move(Data^[1],Data^[0], SizeOf(TReq) * (BufferLength-1));
      Data^[CellCount-1] := aNew;
    end
@@ -346,7 +346,7 @@ Begin
   Dec(SourceCnt);
 end;{CModel.RemoveSource}
 {------------------------------------------------------------------}
-Procedure CModel.SetNextSource; {� å®¤¨â NextSource}
+Procedure CModel.SetNextSource; {�аходит NextSource}
 var
  c      : integer;
 begin
@@ -412,7 +412,7 @@ var
 Begin
  Step := false;
  if Not Working then exit;
- ret := false; {‘ç¨â ¥¬, çâ® ¯à®¤®«¦ âì ­¥ ¡ã¤¥¬}
+ ret := false; {Считаем, что продолжать не будем}
 
  for i:=0 to SourceCnt-1 do if Sources^[i]^.TotalReq < RealizSteps then
    ret:=true;
@@ -430,7 +430,7 @@ Begin
       WorkReq.Death - WorkReq.Birth;
 
     if Buffer^.GetReq(WorkReq) then
-     begin {‚ ¡ãä¥à¥ ­ å®¤¨« áì § ï¢ª }
+     begin {В буфере находила�ь за�вка}
        WorkReq.FromSource^.MatWait := WorkReq.FromSource^.MatWait +
         CurTime-WorkReq.Birth;
        Device^.AddReq(@WorkReq,CurTime);
@@ -442,7 +442,7 @@ Begin
        SetNextSource;
      end;
    end
-  else {�«¨¦ ©è¥¥ ᮡë⨥ - £¥­¥à æ¨ï § ¯à®á }
+  else {Ближайшее �обытие - генераци� запро�а}
    begin
      CurTime := Sources^[NextSource]^.NewTime;
      if not Buffer^.AddReq(Sources^[NextSource]^.LastReq,Kicked) then
@@ -466,16 +466,16 @@ Procedure CModel.PrintValues(var F:Text);
 var
  i : integer;
 begin
-  WriteLn(F,'Žâ­. â®ç­®áâì - ',Delta*100:0:0,'%, ¤®¢. ¨­â ¢ ª¢. - ',DovInt:0:2);
-  WriteLn(F,'• à-ª  ¯®â®ª  ¯à¨¡®à  - ', Device^.Lambda:0:2);
-  WriteLn(F,'ˆáâ.|‚ᣠ§ ï¢.|Žâª § ï¢.|‚ë¯ § ï¢.|P ®âª.  |Œ â. ®¦ | Ž¡é. ¢à.');
+  WriteLn(F,'Отн. точно�ть - ',Delta*100:0:0,'%, дов. инт в кв. - ',DovInt:0:2);
+  WriteLn(F,'Хар-ка потока прибора - ', Device^.Lambda:0:2);
+  WriteLn(F,'И�т.|В�г за�в.|Отк за�в.|Вып за�в.|P отк.  |Мат. ож | Общ. вр.');
   for i := 0 to SourceCnt-1 do with Sources^[i]^ do
   begin
     write(F,Name:4,' ',TotalReq:9,' ',RefusedReq:9,' ',DoneReq:9,' ',100.0*RefusedReq/TotalReq:6:2,'%  ');
     if DoneReq <> 0 then Write(F,MatWait/DoneReq:8:3,' ') else Write(F,'  ---    ');
     WriteLN(F,WaitTime:0:2);
   end;
-  WriteLn(F,'Š®íä䍿¨¥­â ¯à®áâ®ï ¯à¨¡®à  - ',100*Device^.Stoppage/CurTime:0:2,'%');
+  WriteLn(F,'Ко�ффициент про�то� прибора - ',100*Device^.Stoppage/CurTime:0:2,'%');
   WriteLN(F,'---')
 end;{CModel.PrintValues}
 {------------------------------------------------------------------}

+ 1 - 1
PAS/!SPbSTU/MSMO/kurs2.PAS

@@ -50,7 +50,7 @@ Rewrite(output);
    Model^.Start;
    while Model^.Step do if Model^.Curstep mod 1000 = 6 then
     begin
-     WriteLn('˜ £ - ',Model^.Curstep,' : P®âª2 = ',100*Srcs2^.RefusedReq/Srcs2^.TotalReq:0:2);
+     WriteLn('Шаг - ',Model^.Curstep,' : Pотк2 = ',100*Srcs2^.RefusedReq/Srcs2^.TotalReq:0:2);
     end;
 {   Model^.PrintValues;
   end;}

+ 3 - 3
PAS/!SPbSTU/Razzario/GROUP.PAS

@@ -52,8 +52,8 @@ begin
       end;
   Assign(Output,'Sorted.txt');
   Rewrite(output);
-  WriteLn('                 𨯫扼恢�碲 磲�洛陋� ');
-  WriteLn(' 摵膉平碲 栽嵼飶兒恥�� � 祚黽云� 耤諲�剁 蝁砲�布桑漼');
+  WriteLn('                 �迮郱�郅��訄�� �郕郱訄邾迮郇郋赲 ');
+  WriteLn(' ���迡迮郇�� 郋��郋��邽�郋赲訄郇� 赲 郈郋��迡郕迮 �訇�赲訄郇邽� ��郈迮赲訄迮邾郋��邽');
   for i := 1 to NPupils do
    begin
      Write(Pupils[i].Name);
@@ -64,7 +64,7 @@ begin
   close(Output);
   Assign(OutPut,'exclude.txt');
   Rewrite(OutPut);
-  WriteLn('               麪兕悚 摵膉平漅�, 能奶摵𨯂咱限錼 � 栽蝔嶉平言: ');
+  WriteLn('               苤郈邽�郋郕 ���迡迮郇�郋赲, 郈�迮迡��訄赲郅迮郇郇�� 郇訄 郋��邽�郅迮郇邽迮: ');
   for i := 1 to NPupils do
    if Last[i] > 1 then 
      WriteLn(Pupils[i].Name);

+ 7 - 7
PAS/!SPbSTU/Razzario/INTEGRAL.PAS

@@ -99,12 +99,12 @@ VAR
    mode : byte;
 BEGIN
  mode:=0;
-  WriteLn('�‘鄖漭 洛漅� 身漭␡兒恥�剁:');
-  WriteLn('  1: 𥅾╳摵桌悌郃�  能麍柴ㄝ恢郃狙�');
-  WriteLn('  2: 棅凌�恢卿�  能麍柴ㄝ恢郃狙�');
-  WriteLn('  3: 𥐰𨯂桑漅鉈限典 能麍柴ㄝ恢陋狙�');
-  WriteLn('  4: 泿漅� 瘔�交貝');
-  Write(#13'�收兩�: ');
+  WriteLn('��訇迮�邽�迮 邾迮�郋迡 邽郇�迮迣�邽�郋赲訄郇邽�:');
+  WriteLn('  1: �迮赲郋��郋�郋郇郇邽�  郈��邾郋�迣郋郅�郇邽郕郋赲');
+  WriteLn('  2: 虷迮郇��訄郅�郇��  郈��邾郋�迣郋郅�郇邽郕郋赲');
+  WriteLn('  3: ��訄赲郋��郋�郋郇郇邽� 郈��邾郋�迣郋郅�郇郋郕郋赲');
+  WriteLn('  4: �迮�郋迡 ��訄郈迮�邽邿');
+  Write(#13'�訄迠邾邽�迮: ');
   while not (mode in [1..4]) do Mode:=Ord(ReadKey)-$30;
   Write(Mode);
   case mode of
@@ -113,5 +113,5 @@ BEGIN
    3: RightPram;
    4: CalcTrap;
   end;
-  WriteLn(#10#13'�漭逽𠼻: ',Value:0:5);
+  WriteLn(#10#13'�郇�迮�迣訄郅: ',Value:0:5);
 END.

+ 1 - 1
PAS/!SPbSTU/SYSTEM.PAS

@@ -12,7 +12,7 @@ begin
  Base := Bases[inp[ord(inp[0])]]; 
  for pos := 1 to ord(inp[0])-1 do
   begin Number := Number * base; Inc(Number,NUMS[Inp[pos]]); end;
- WriteLn('‚¢¥¤¥­­®¥ ç¨á«® ¢ ¤à. á¨á⥬ å áç¨á«¥­¨ï:');
+ WriteLn('Введенное чи�ло в др. �и�темах �чи�лени�:');
  for pos := 0 to 4 do 
   begin
     base := Bases[sBases[pos]]; sOut:=''; cur := number;

+ 33 - 33
PAS/!SPbSTU/ShellSort.pas

@@ -1,28 +1,28 @@
 Program ShellSort;
-{‘®àâ¨à®¢ª  ˜¥«« , ã«ãç襭¨¥  «£®à¨â¬  ¯àאַ£® ¢ª«î祭¨ï, à §­¨æ  ¢ ⮬,
- çâ® ¯à®æ¥áá á®àâ¨à®¢ª¨ ¡ì¥âáï ­  T íâ ¯®¢, ¢ ª ¦¤®¬ ¨§ ª®â®àëå ¤¥« ¥âáï 
- ®¤¨­ ¯à®å®¤ ¯àאַ£® ¢ª«î祭¨ï, ­® ⮫쪮 ­  í«¥¬¥­âë, ®âáâ®ï騥 ¤à㣠®â 
- ¤à㣠 ­  h[i] í«-⮢ (i in [1..T] ¨ h[T] = 1)
+{Сортировка Шелла, улучшение алгоритма пр�мого включени�, разница в том,
+ что проце�� �ортировки бьет�� на T �тапов, в каждом из которых делает�� 
+ один проход пр�мого включени�, но только на �лементы, от�то�щие друг от 
+ друга на h[i] �л-тов (i in [1..T] и h[T] = 1)
 
- ’ ª¦¥ ¤«ï  «£®à¨â¬  ¯àאַ© ¢áâ ¢ª¨ 㤮¡­® ¨á¯®«ì§®¢ âì "¡ àì¥àë". „ ¡ë
- ¯à¨ ¯¥à¥¬¥é¥­¨¨ ­¥ ᢥàïâì ¨­¤¥ªá í«-â  á ­ ç «®¬ ¬ áᨢ , 㤮¡­® 
- à áè¨à¨âì ¬ áᨢ ­  1 í«-â (¢ ¤ ­­®¬ á«ãç ¥ ­  h[1]) ¨ â㤠 ¯¨á âì í«-â,
- ª®â®à®¬ã ᮡ¨à ¥¬áï ¨áª âì ¬¥áâ®. ’ ª¨¬ ®¡à §®¬ à §¬¥à ¬ áᨢ  ¡ã¤¥â
- [-h[1]..TotalCount]. ‚á«¥¤á⢨¥ ¦¥« ­¨ï á®§¤ âì ã­¨¢¥àá «ì­ë©  «£®à¨â¬
- á ¨á¯®«ì§®¢ ­¨¥¬ ¤¨­ ¬¨ç¥áª¨å áâàãªâãà (­ ¬ § à ­¥¥ ­¥ ¨§¢¥áâ­® T ¨ 
- ᮮ⢥âá⢥­­® h[1]) ¡ã¤¥â ¨á¯®«ì§®¢ ìáï ᬥ饭­ ï ¨­¤¥ªá æ¨ï ¬ áᨢ 
+ Также дл� алгоритма пр�мой в�тавки удобно и�пользовать "барьеры". Дабы
+ при перемещении не �вер�ть индек� �л-та � началом ма��ива, удобно 
+ ра�ширить ма��ив на 1 �л-т (в данном �лучае на h[1]) и туда пи�ать �л-т,
+ которому �обираем�� и�кать ме�то. Таким образом размер ма��ива будет
+ [-h[1]..TotalCount]. В�лед�твие желани� �оздать универ�альный алгоритм
+ � и�пользованием динамиче�ких �труктур (нам заранее не изве�тно T и 
+ �оответ�твенно h[1]) будет и�пользоваь�� �мещенна� индек�аци� ма��ива
  ( A[i] -> A[h[1]+i]).
 
- ˆá¯®«ì§ãîâáï ã«ãç襭¨ï „. Š­ãâ :
+ И�пользуют�� улучшени� Д. Кнута:
  h[k-1] := 3*h[k]+1;
  T := LOG(N,3)-1
 
- PS. � ¤¥îáì ¢¥áì íâ®â ¡à¥¤ ¯®¬®¦¥â ¢ ¬ à §®¡à âìáï ¢ ¯à¥¤«®¦¥­­®¬  «£®à¨â¬¥.}
+ PS. �адею�ь ве�ь �тот бред поможет вам разобрать�� в предложенном алгоритме.}
 
 type
  item = word;
 const
- MaxCount = 65530 div SizeOf(item); {Œ ªá¨¬ «ì­®¥ ç¨á«® í«-⮢ ¬ áᨢ }
+ MaxCount = 65530 div SizeOf(item); {Мак�имальное чи�ло �л-тов ма��ива}
  TotalCount = 20000;
 
 type
@@ -31,42 +31,42 @@ type
  tIndex  = 1..MaxCount;
 
 var
- T  : tIndex; {—¨á«® "à §¡¨¥­¨©"}
+ T  : tIndex; {Чи�ло "разбиений"}
  h  : pArray;
- Fi : tIndex; {�¥ «ì­ë© ¨­¤¥ªá ¯¥à¢®£® í«-â  (­¥ ¡ àì¥à )}
+ Fi : tIndex; {Реальный индек� первого �л-та (не барьера)}
  A  : pArray;
 
 {--------------------------------------------------------------}
-Procedure Init; {“áâ ­ ¢«¨¢ îâáï ã«ãçè. Š­ãâ , ¨­¨æ. ¬ áᨢë}
+Procedure Init; {У�танавливают�� улучш. Кнута, иниц. ма��ивы}
 var
  i : tIndex;
 begin
- T := round(Ln(TotalCount)/Ln(3)-1); {(‘) Š­ãâ}
- GetMem(h,T*SizeOf(item)); {ˆ­¨æ. ¬ áᨢ à ááâ®ï­¨©}
+ T := round(Ln(TotalCount)/Ln(3)-1); {(С) Кнут}
+ GetMem(h,T*SizeOf(item)); {Иниц. ма��ив ра��то�ний}
  h^[T] := 1;
  for i := T-1 DownTo 1 do h^[i] := 3*h^[i+1]+1;
- Fi := h^[1]; {“áâ ­®¢¨¬ £«®¡. ¨­¤¥ªá "ᬥ饭­®£®" ᬥ饭¨ï}
- GetMem(A,(TotalCount+Fi)*Sizeof(Item)); {ˆ­¨æ «¨§¨à㥬 ®á­. ¬ áᨢ}
-                 {^^^ „«ï ¡ àì¥à®¢} 
+ Fi := h^[1]; {У�тановим глоб. индек� "�мещенного" �мещени�}
+ GetMem(A,(TotalCount+Fi)*Sizeof(Item)); {Иницализируем о�н. ма��ив}
+                 {^^^ Дл� барьеров} 
 end;{Init}
 {--------------------------------------------------------------}
-Procedure Done; {Žá¢. ¢áî ¯ ¬ïâì}
+Procedure Done; {О�в. в�ю пам�ть}
 begin
   FreeMem(h,T*SizeOf(Item));
   FreeMem(A,TotalCount*SizeOf(Item));
 end;{Done}
 {--------------------------------------------------------------}
-Procedure SetArray; {�à®æ¥¤ãઠ § ¯®«­¥­¨ï í«-⮢ ¬ áᨢ  á«ãç. ç¨á« ¬¨}
+Procedure SetArray; {Процедурка заполнени� �л-тов ма��ива �луч. чи�лами}
 var
  i : tIndex;
 begin
   Randomize;
   For i := 1 To TotalCount Do A^[Fi+i] := Random(65535);
-                                {^^^ ޝïâì ¡ àì¥àë}
+                                {^^^ Оп�ть барьеры}
 end;{SetArray}
 {--------------------------------------------------------------}
 
-{Žá­®¢­ ï ¯à®£à ¬¬ }
+{О�новна� программа}
 Var
  i,j,k,m,s : tIndex;
  Times     : pArray;
@@ -81,19 +81,19 @@ BEGIN
 
   For m := 1 to T do
   begin
-   k := h^[m]; {� ááâ®ï­¨¥ ¬¥¦¤ã í«-â ¬¨}
-   s := Fi-k;  {"¡ àì¥à"}
+   k := h^[m]; {Ра��то�ние между �л-тами}
+   s := Fi-k;  {"барьер"}
    For i := k+1 to TotalCount do
    begin
-     x := A^[Fi+i]; {�«-â, á ª®â®àë¬ à ¡®â ¥¬}
+     x := A^[Fi+i]; {Эл-т, � которым работаем}
      If S=Fi then S := Fi-k;
      inc(s);
-     A^[s] := x;         {“áâ ­®¢¨¬ "¡ àì¥à"}
-     j := i-k;           {�।ë¤ã騩 ç¥à¥§ à ááâ®ï­¨¥}
+     A^[s] := x;         {У�тановим "барьер"}
+     j := i-k;           {Предыдущий через ра��то�ние}
      while A^[Fi+j] > x do
       begin
        Inc(Times^[m]);
-       A^[Fi+j+k] := A^[Fi+j]; {„¢¨£ ¥¬ ¬ áᨢ}
+       A^[Fi+j+k] := A^[Fi+j]; {Двигаем ма��ив}
        dec(j,k);
       end;
      A^[Fi+j+k] := x;
@@ -106,7 +106,7 @@ BEGIN
    Write(A^[Fi+i]:7);
   end;
 
-  WriteLN(#10#13'—¨á«® ¯¥à¥áâ ­®¢®ª ­  ª ¦¤®¬ íâ ¯¥:');
+  WriteLN(#10#13'Чи�ло пере�тановок на каждом �тапе:');
   for i := 1 to T do WriteLn(i,'(',H^[i],') -> ',Times^[i]);
 
   FreeMem(Times,T*SizeOF(Word));

+ 83 - 83
PAS/!SPbSTU/Win2k2/CORE.PAS

@@ -1,17 +1,17 @@
-unit CORE; {Ÿ¤à® ¬®¤¥«¨ á¨áâ¥¬ë ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
+unit CORE; {Ядро модели �и�темы ма��ового об�луживани�}
                             INTERFACE
 type       
- PSource  = ^CSource; {“ª § â¥«ì ­  ¨áâ®ç­¨ª}
- PDevice  = ^CDevice; {“ª § â¥«ì ­  á¨á⥬㠮¡à ¡®âª¨ (ãáâனá⢮) }
- PBuffer  = ^CBuffer; {“ª § â¥«ì ­  ¡ãä¥à § ¯à®á®¢}
+ PSource  = ^CSource; {Указатель на и�точник}
+ PDevice  = ^CDevice; {Указатель на �и�тему обработки (у�трой�тво) }
+ PBuffer  = ^CBuffer; {Указатель на буфер запро�ов}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-TReq = record  {‡ ¯à®á ­  ®¡á«ã¦¨¢ ­¨¥}
-  Birth : real; {‚à¥¬ï ¯®ï¢«¥­¨ï § ¯à®á }
-  Death : real; {‚६ï ᬥà⨠§ ¯à®á  (®¡à ¡®â ­, «¨¡® ®âª«®­¥­)}
-  FromSource : PSource; {Šâ® ¯à®á¨«-â® ?}
-  ToDevice   : PDevice; {€ ᮡá⢥­­® ªã¤  ?}
+TReq = record  {Запро� на об�луживание}
+  Birth : real; {Врем� по�влени� запро�а}
+  Death : real; {Врем� �мерти запро�а (обработан, либо отклонен)}
+  FromSource : PSource; {Кто про�ил-то ?}
+  ToDevice   : PDevice; {� �об�твенно куда ?}
 end;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
@@ -25,109 +25,109 @@ PReq = ^TReq;
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
 
-ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {’¨¯ë ¨áâ®ç­¨ª®¢}
+ESOURCES = (SOURCE_DUMMY,SOURCE_EASIEST,SOURCE_ERLANG); {Типы и�точников}
 
-CSource = object   {Ž¡ê¥ªâ - ¯à®á⥩訩 ¨áâ®ç­¨ª}
-  SType : ESOURCES; {Š ª®¢ ­ è ¨áâ®ç­¨ª? }
-  Name  : integer;  {€ ª ª ¥£® §®¢ãâ ?}
+CSource = object   {Объект - про�тейший и�точник}
+  SType : ESOURCES; {Каков наш и�точник? }
+  Name  : integer;  {� как его зовут ?}
 
-  LastTime : real;  {‚à¥¬ï £¥­¥à æ¨¨ ¯®á«¥¤­¥£® § ¯à®á }
-  LastReq  : TReq;  {�®á«¥¤­¨© ᣥ­¥à¨à®¢ ­­ë© § ¯à®á}
+  LastTime : real;  {Врем� генерации по�леднего запро�а}
+  LastReq  : TReq;  {По�ледний �генерированный запро�}
 
-  NewTime  : real;  {Œ®¬¥­â £¥­¥à æ¨¨ ­®¢®£® § ¯à®á }
+  NewTime  : real;  {Момент генерации нового запро�а}
   Lambda   : real;
 
-  TotalReq : longInt; {ޡ饥 ç¨á«® § ï¢®ª ®â ¨áâ®ç­¨ª }
-  DoneReq : longInt; {ç¨á«® ®¡à ¡®â ­­ëå § ï¢®ª ®â ¨áâ®ç­¨ª }  
-  RefusedReq:LongInt; {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
-  WaitTime : real; {ޡ饥 ¢à¥¬ï ¯à¥¡ë¢ ­¨ï ¢ á¨á⥬¥}
-  ProbRefuse:real; {‚¥à®ïâ­®áâì ®âª § } 
-  MatWait  : real; {Œ â¥¬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢ ¡ãä¥à¥}
+  TotalReq : longInt; {Общее чи�ло за�вок от и�точника}
+  DoneReq : longInt; {чи�ло обработанных за�вок от и�точника}  
+  RefusedReq:LongInt; {Чи�ло отклоненных за�вок}
+  WaitTime : real; {Общее врем� пребывани� в �и�теме}
+  ProbRefuse:real; {Веро�тно�ть отказа} 
+  MatWait  : real; {Математиче�кое ожидание в буфере}
 
-  Constructor Init(aName : Integer;aLambda:real); {Š®­áâàãªâ®à á ¨¬¥­¥¬}
-  Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
-  Procedure GenNewReq; {ƒ¥­¥à æ¨ï ­®¢®£® § ¯à®á }
+  Constructor Init(aName : Integer;aLambda:real); {Кон�труктор � именем}
+  Procedure Reset; {Сбро� в�ех �четчиков}
+  Procedure GenNewReq; {Генераци� нового запро�а}
   Destructor Done;virtual;
 end;{CSource}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CDevice = object   {Ž¡ê¥ªâ - ¯à®á⥩襥 ãá⮩á⢮ ¬ áᮢ®£® ®¡á«ã¦¨¢ ­¨ï}
-  LastTime : real; {‚à¥¬ï ¯®á«¥¤­¥£® § ¢¥à襭¨ï ®¡á«ã¦¨¢ ­¨ï}
+CDevice = object   {Объект - про�тейшее у�той�тво ма��ового об�луживани�}
+  LastTime : real; {Врем� по�леднего завершени� об�луживани�}
 
-  BegTime  : real; {‚à¥¬ï ­ ç «  ®¡á«ã¦¨¢ ­¨ï}
-  DoneTime : real; {‚६ï, ¢ ª®â®à®¥ § ª®­ç¨âáï ®¡à ¡®âª }
+  BegTime  : real; {Врем� начала об�луживани�}
+  DoneTime : real; {Врем�, в которое закончит�� обработка}
 
-  Stoppage : real; {ޡ饥 ¢à¥¬ï ¯à®áâ®ï ¯à¨¡®à }
+  Stoppage : real; {Общее врем� про�то� прибора}
 
-  IsWorking : boolean; {Žáãé¥á⢫ï¥âáï «¨ ®¡á«ã¦¨¢ ­¨¥ ?}
-  CurWorking : TReq; {’¥ªã騩 ®¡à ¡ â뢠¥¬ë© § ¯à®á}
+  IsWorking : boolean; {О�уще�твл�ет�� ли об�луживание ?}
+  CurWorking : TReq; {Текущий обрабатываемый запро�}
   Lambda   : real; 
 
   Constructor Init(aLambda:real); {}
-  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
-  Procedure Reset; {‘¡à®á ãáâà-¢ }
-  Function DoneWork:PReq; {‡ ¢¥à襭¨¥ ®¡à ¡®âª¨ ⥪ã饣® § ¯à®á , á ¥£® ¢®§¢à â®¬}
+  Function AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
+  Procedure Reset; {Сбро� у�тр-ва}
+  Function DoneWork:PReq; {Завершение обработки текущего запро�а, � его возвратом}
   Destructor Done;
 end; {CDevice}
 
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 EBuffers = (BUFFER_DUMMY, BUFFER_FIFO, BUFFER_LIFO);
 
-CBuffer = object      {�ãää¥à § ¯à®á®¢}
-  BufType      : EBuffers; {’¨¯ ¡ãä¥à }
-  BufferLength : integer; {„«¨­  ¡ãä¥à }
-  CellCount    : integer; {ˆ­¤¥ªá ⥪ã饩 ᢮¡®¤­®© ï祩ª¨}
-  Data         : PReqArray; {‘®¡á⢥­­® á ¬ ¡ãä¥à}
-  Constructor Init(aBufLen:integer); {ˆ­¨æ¨ «¨§ æ¨ï ¡ãä¥à }
-  Destructor Done;virtual;{„¥áâàãªâ®à, ®­ ¨ ¥áâì}
-  Function SetBufferSize(aNewSize:integer):boolean;{ˆ§¬¥­¥­¨¥ à §¬¥à  ¡ãä¥à }
-  Procedure FreeBuffer; {Žá¢®¡®¦¤¥­¨¥ ¢á¥£® ¡ãä¥à  áà §ã}
-  Function AddReq(var aNew, rKicked:TReq):boolean; {„®¡ ¢«ï¥âáï § ¯à®á ¢ ¡ãä¥à.
-   …᫨ ¨§ ¡ãä¥à  ª ª®©-â® § ¯à®á 㤠«¥­, â® ä-æ¨ï ¢®§¢à. false, ¨ ¢ rKicked -
-   § ¯à®á, ª®â®àë© ®âª«®­¥­}
-  Function GetReq(var rReq:TReq):boolean;virtual; {‚ëâ é¨âì ¨§ ¡ãä¥à  § ¯à®á,
-        ¥á«¨ ãᯥ譮 - true}
+CBuffer = object      {Буффер запро�ов}
+  BufType      : EBuffers; {Тип буфера}
+  BufferLength : integer; {Длина буфера}
+  CellCount    : integer; {Индек� текущей �вободной �чейки}
+  Data         : PReqArray; {Соб�твенно �ам буфер}
+  Constructor Init(aBufLen:integer); {Инициализаци� буфера}
+  Destructor Done;virtual;{Де�труктор, он и е�ть}
+  Function SetBufferSize(aNewSize:integer):boolean;{Изменение размера буфера}
+  Procedure FreeBuffer; {О�вобождение в�его буфера �разу}
+  Function AddReq(var aNew, rKicked:TReq):boolean; {Добавл�ет�� запро� в буфер.
+   Е�ли из буфера какой-то запро� удален, то ф-ци� возвр. false, и в rKicked -
+   запро�, который отклонен}
+  Function GetReq(var rReq:TReq):boolean;virtual; {Вытащить из буфера запро�,
+        е�ли у�пешно - true}
 end; {CBuffer}
 {-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
 
-CModel = object {� è  ¬®¤¥«ì ‘ŒŽ} 
- Sources  : PSourceArr; {ˆáâ®ç­¨ª¨} 
- SourceCnt: integer;    {—¨á«® ¨áâ®ç­¨ª®¢}
- MaxSrc   : integer;    {� §¬¥à­®áâì ¬ áᨢ  ¨áâ®ç­¨ª®¢}
+CModel = object {�аша модель СМО} 
+ Sources  : PSourceArr; {И�точники} 
+ SourceCnt: integer;    {Чи�ло и�точников}
+ MaxSrc   : integer;    {Размерно�ть ма��ива и�точников}
 
- Buffer   : PBuffer;    {�ãä¥à}
- Device   : PDevice;    {“áâனá⢮}
+ Buffer   : PBuffer;    {Буфер}
+ Device   : PDevice;    {У�трой�тво}
 
- CurTime  : real;       {’¥ªã騩 ¬®¬¥­â ¢à¥¬¥­¨}
+ CurTime  : real;       {Текущий момент времени}
  Delta    : real;
  DovInt   : real;
 
- NextSource:integer;    {Š ª®© ¨§ ¨áâ®ç­¨ª®¢ - ¡ëáâ॥}
- RealizSteps:LongInt;   {�¥®¡å. ç¨á«® ॠ«¨§ æ¨©}
- CurStep  : LongInt;    {’¥ªã騩 è £}
+ NextSource:integer;    {Какой из и�точников - бы�трее}
+ RealizSteps:LongInt;   {�еобх. чи�ло реализаций}
+ CurStep  : LongInt;    {Текущий шаг}
 {}
- DoneCount,             {—¨á«® ®¡à ¡®â ­­ëå § ï¢®ª}
- RefusedCount,           {—¨á«® ®âª«®­¥­­ëå § ï¢®ª}
- TotalCount : integer;  {ޡ饥 ç¨á«® § ï¢®ª}
+ DoneCount,             {Чи�ло обработанных за�вок}
+ RefusedCount,           {Чи�ло отклоненных за�вок}
+ TotalCount : integer;  {Общее чи�ло за�вок}
 
- Working  : boolean;    {� ¡®â ¥â «¨ ¬®¤¥«ì ?}
+ Working  : boolean;    {Работает ли модель ?}
  WorkReq  : TReq;
 
- CalcVer  : boolean;    {�㦭® «¨ ¯®¤áç¨â뢠âì KMIN ¢ § ¢. ®â ¢¥à ?}
+ CalcVer  : boolean;    {�ужно ли под�читывать KMIN в зав. от вер ?}
 
  Constructor Init(aBegSrcCnt:integer;aDev:PDevice;aBuf:PBuffer;
                   aDel,aDov:Real);
- Function SetSourceCount(aNewCnt:integer):boolean; {“áâ ­®¢ª  ­®¢®£® ç¨á« 
-                                              ¨áâ®ç­¨ª®¢, á á®åà ­¥­¨¥¬ áâ àëå}
- Function AddNewSource(aNewSrc:PSource):boolean; {„®¡ ¢«¥­¨¥ ­®¢®£® ¨áâ®ç­¨ª }
- Procedure SetNextSource; {� å®¤¨â NextSource}
+ Function SetSourceCount(aNewCnt:integer):boolean; {У�тановка нового чи�ла
+                                              и�точников, � �охранением �тарых}
+ Function AddNewSource(aNewSrc:PSource):boolean; {Добавление нового и�точника}
+ Procedure SetNextSource; {�аходит NextSource}
  Function TestVer:boolean; {}
- Function RemoveSource(aName:integer):boolean; {“¤ «¥­¨¥ ¨áâ®ç­¨ª  ¨§ ¬®¤¥«¨}
- Procedure Reset; {‘¡à®á ¢á¥å áç¥â稪®¢}
+ Function RemoveSource(aName:integer):boolean; {Удаление и�точника из модели}
+ Procedure Reset; {Сбро� в�ех �четчиков}
  Procedure Start;
  Procedure PrintValues(var F:TEXT);
- Function Step:boolean; {Œ®¤¥«¨àã¥â á«¥¤ãî騩 è £, ¥á«¨ ¢ }
+ Function Step:boolean; {Моделирует �ледующий шаг, е�ли в }
  Destructor Done;
 end;
 {-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}
@@ -181,7 +181,7 @@ begin
   IsWorking := false;
 end;{CDevice.Reset}
 {---------------------------}
-Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {� ç «® ®¡à ¡®âª  § ¯à®á }
+Function CDevice.AddReq(aCurReq : PReq;aCurTime:real):boolean; {�ачало обработка запро�а}
 begin
   AddReq := false;
   if not isWorking then
@@ -248,12 +248,12 @@ end;{CBuffer.SetBufferSize}
 {-----------------------}
 Function CBuffer.AddReq(var aNew, rKicked:TReq):boolean;
 begin
-  if CellCount=BufferLength then {�  á ¬®¬ ¤¥«¥, â.ª á 0, â® ¡®«ìè¥}
+  if CellCount=BufferLength then {�а �амом деле, т.к � 0, то больше}
    begin
      AddReq := false;
      rKicked := Data^[0];
-     rKicked.Death := aNew.Birth; {‡ ¯à®á ®âª«®­¥­, ¢ ¬®¬¥­â, ª®£¤  ­®¢ë© ¯à¨¡ë«,
-                                    â.¥. ª®£¤  â®â ¡ë« á®§¤ ­}
+     rKicked.Death := aNew.Birth; {Запро� отклонен, в момент, когда новый прибыл,
+                                    т.е. когда тот был �оздан}
      Move(Data^[1],Data^[0], SizeOf(TReq) * (BufferLength-1));
      Data^[CellCount-1] := aNew;
    end
@@ -349,7 +349,7 @@ Begin
   Dec(SourceCnt);
 end;{CModel.RemoveSource}
 {------------------------------------------------------------------}
-Procedure CModel.SetNextSource; {� å®¤¨â NextSource}
+Procedure CModel.SetNextSource; {�аходит NextSource}
 var
  c      : integer;
 begin
@@ -415,7 +415,7 @@ var
 Begin
  Step := false;
  if Not Working then exit;
- ret := false; {‘ç¨â ¥¬, çâ® ¯à®¤®«¦ âì ­¥ ¡ã¤¥¬}
+ ret := false; {Считаем, что продолжать не будем}
 
  if (not CalcVer) AND (CurStep > RealizSteps) then exit;
 
@@ -435,7 +435,7 @@ Begin
       WorkReq.Death - WorkReq.Birth;
 
     if Buffer^.GetReq(WorkReq) then
-     begin {‚ ¡ãä¥à¥ ­ å®¤¨« áì § ï¢ª }
+     begin {В буфере находила�ь за�вка}
        WorkReq.FromSource^.MatWait := WorkReq.FromSource^.MatWait +
         CurTime-WorkReq.Birth;
        Device^.AddReq(@WorkReq,CurTime);
@@ -447,7 +447,7 @@ Begin
        SetNextSource;
      end;
    end
-  else {�«¨¦ ©è¥¥ ᮡë⨥ - £¥­¥à æ¨ï § ¯à®á }
+  else {Ближайшее �обытие - генераци� запро�а}
    begin
      CurTime := Sources^[NextSource]^.NewTime;
      if not Buffer^.AddReq(Sources^[NextSource]^.LastReq,Kicked) then
@@ -471,16 +471,16 @@ Procedure CModel.PrintValues(var F:Text);
 var
  i : integer;
 begin
-  WriteLn(F,'Žâ­. â®ç­®áâì - ',Delta*100:0:0,'%, ¤®¢. ¨­â ¢ ª¢. - ',DovInt:0:2);
-  WriteLn(F,'• à-ª  ¯®â®ª  ¯à¨¡®à  - ', Device^.Lambda:0:2);
-  WriteLn(F,'ˆáâ.|‚ᣠ§ ï¢.|Žâª § ï¢.|‚ë¯ § ï¢.|P ®âª.  |Œ â. ®¦ | Ž¡é. ¢à.');
+  WriteLn(F,'Отн. точно�ть - ',Delta*100:0:0,'%, дов. инт в кв. - ',DovInt:0:2);
+  WriteLn(F,'Хар-ка потока прибора - ', Device^.Lambda:0:2);
+  WriteLn(F,'И�т.|В�г за�в.|Отк за�в.|Вып за�в.|P отк.  |Мат. ож | Общ. вр.');
   for i := 0 to SourceCnt-1 do with Sources^[i]^ do
   begin
     write(F,Name:4,' ',TotalReq:9,' ',RefusedReq:9,' ',DoneReq:9,' ',100.0*RefusedReq/TotalReq:6:2,'%  ');
     if DoneReq <> 0 then Write(F,MatWait/DoneReq:8:3,' ') else Write(F,'  ---    ');
     WriteLN(F,WaitTime:0:2);
   end;
-  WriteLn(F,'Š®íä䍿¨¥­â ¯à®áâ®ï ¯à¨¡®à  - ',100*Device^.Stoppage/CurTime:0:2,'%');
+  WriteLn(F,'Ко�ффициент про�то� прибора - ',100*Device^.Stoppage/CurTime:0:2,'%');
   WriteLN(F,'---')
 end;{CModel.PrintValues}
 {------------------------------------------------------------------}

+ 7 - 7
PAS/!SPbSTU/Win2k2/CoolKey.pas

@@ -1,6 +1,6 @@
 {$G+}
-UNIT CoolKey; {“¤®¡­ ï,   £« ¢­®¥ ¡ëáâà ï à ¡®â  á ª« ¢¨ âãன.
-               �®«ì訥 ¢®§¬®¦­®áâ¨}
+UNIT CoolKey; {Удобна�, а главное бы�тра� работа � клавиатурой.
+               Большие возможно�ти}
                INTERFACE
 {$C FIXED PRELOAD PERMANENT}
 Uses Dos;
@@ -41,7 +41,7 @@ SC_E0,SC_E1,SC_E2,SC_E3,SC_E4,SC_E5,SC_E6,SC_E7,SC_E8,SC_E9,SC_EA,SC_EB,SC_EC,SC
 SC_F0,SC__F1,SC__F2,SC__F3,SC__F4,SC__F5,SC__F6,SC__F7,SC__F8,SC__F9,SC_FA,SC_FB,SC_FC,SC_FD,SC_FE,SC_FF);
 
 TKeyTable = array [EScanCode] of boolean;
-PKeyTable = ^TKeyTable;  {ƒ« ¢­ë© ⨯ ¬®¤ã«ï, ¬ áᨢ ­ ¦ âëå ª­®¯®ª}
+PKeyTable = ^TKeyTable;  {Главный тип модул�, ма��ив нажатых кнопок}
 
 CONST
  SC_NAME : array [EScanCode] of string [15] =
@@ -71,10 +71,10 @@ CONST
    'FA','FB','FC','FD','FE','FF');
 
 
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
 Function GetChar(aSC : byte):Char;
 Function GetScanCode(var aC:EScanCode; var Pressed:Boolean):Boolean;
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 
                 IMPLEMENTATION
 const
@@ -232,7 +232,7 @@ begin
     GetScanCode := false;
    end;
 end;
-Function InitKeyboard : PKeyTable; {�¥à¥å¢ â INT09. ‚®§¢à. 㪠­  â ¡«¨æã}
+Function InitKeyboard : PKeyTable; {Перехват INT09. Возвр. ук на таблицу}
 begin
   if gInited then Exit;
   FillChar(KeyTable,256,0); {Zeroes keys table}
@@ -246,7 +246,7 @@ begin
   InitKeyBoard := @KeyTable;
 end;{Init keyboard}
 {------------------------}
-Procedure CloseKeyboard; {‚®§¢à â ¯à¥à뢠­¨ï. ‚ë室}
+Procedure CloseKeyboard; {Возврат прерывани�. Выход}
 begin
  if not gInited then exit;
  SetIntVec($09,OldInt09);

+ 69 - 69
PAS/!SPbSTU/Win2k2/UI2.PAS

@@ -1,63 +1,63 @@
 Uses Core,Win2K2,CoolKey,ccontr;
-{ �祚恢扼布諝 洫扎咧 - 
-  Core    - 墰陋╲悟 洫扎恢 芥颬恥赤�, �洫 洫丰咧鉈�郃�.  (C) IE 2002
-  Win2K2  - �牐函丟爸� 洫扎恢, 祚 ╳妞恩陋摵�, �𠼻恐剁 角市悍恐豕 
+{ ��郈郋郅�郱�迮邾�迮 邾郋迡�郅邽 - 
+  Core    - ��郇郋赲郇郋邿 邾郋迡�郅� 郕���郋赲邽郕訄, �訄邾郋 邾郋迡迮郅邽�郋赲訄郇邽迮.  (C) IE 2002
+  Win2K2  - ��訄�邽�迮�郕邽邿 邾郋迡�郅�, 郈郋 赲郋郱邾郋迠郇郋��邽, 訄郇訄郅郋迣邽� 邽迡迮郅郋郅郋迣邽邽 
             Win32 API (C) Microsoft. Win2k2 (C) IE
-  CoolKey - 讃扎恢 郃妒柴芹恥郊╳� �&碲 � 物𨯂�睼鉈�, 兕祚恢扼乒摬 � Win2k2,
-            � ㄝ垣╲悟 能恐�洵� 郊恣摰尹� 井� 物𨯂�睼酯錼 狙凍�凌
-  CContr  - 讃扎恢 井� �&碲 � Win2k2, � 郊� 鄍𠼻豆恥�� 桑陋╲諝 礅布平碲
-            身漭馯巧� (EditBox, CheckBox, Button, XYPlot)}
+  CoolKey - �郋迡�郅� 郇邽郱郕郋�郕�郋赲郇迮赲郋邿 �訄訇郋�� � 郕郅訄赲邽訄���郋邿, 邽�郈郋郅�郱�迮��� 赲 Win2k2,
+            赲 迣郋郅郋赲郇郋邿 郈�郋迣�訄邾邾迮 郇迮郋訇�郋迡邽邾 迡郅� 郕郅訄赲邽訄���郇�� 郕郋郇��訄郇�
+  CContr  - �郋迡�郅� 迡郅� �訄訇郋�� � Win2k2, 赲 郇迮邾 �迮訄郅邽郱郋赲訄郇� 郋�郇郋赲郇�迮 �郅迮邾迮郇��
+            邽郇�迮��迮邿�訄 (EditBox, CheckBox, Button, XYPlot)}
  
 TYPE
- {䴴摵殷郃剁 嶁摵布觱
- EStatus = (ST_WAITING,  {𪂹摵布� 恩角�� 摵恷�}
-            ST_RUNNING,  {𪂹摵布� � 嵼摵. �&碲}
-            ST_FINISHED) {𪂹嶉布� �╞骭走� 洫丰咧鉈�郃囚;
+ {苤郋��郋�郇邽邽� �邽��迮邾�}
+ EStatus = (ST_WAITING,  {苤邽��迮邾訄 郋迠邽迡訄迮� ��訄��訄}
+            ST_RUNNING,  {苤邽��迮邾訄 赲 �郋��. �訄訇郋��}
+            ST_FINISHED) {苤邽�郅迮邾訄 郱訄赲迮��邽郅訄 邾郋迡迮郅邽�郋赲訄郇邽迮};
  
 const
  AStatus : array [EStatus] of string[15] = ('Waiting','Running', 'Finished');
- {䴴恣擖郃� � 嵼摵殷郃� 嶁摵布觱
+ {苤郋郋訇�迮郇邽� 郋 �郋��郋�郇邽邽 �邽��迮邾�}
 
 var
- TextOut   : Text;     {�帖恥諰 丰嶊鄖胼桌 漭花漅╳ㄝ c╳� 鄍扼恢�漅┘
- RunNum    : Integer;  {旿洛� �胯嶊� 嶁摵布� (祚 郊研 �妨函𡋾皸� �帖� c╳�}
- RunMode   : boolean;  {𨯫成� �&碲 (�&蝔�/栽�亢蝑諰)}
- Parent    : hWNd;     {Handle 桑陋╲恐� 悚� 能恐�洵觱
- Stat      : EStatus;  {𤨎芥擖� �&蟡� 嵼摵殷郃囚
- OCButtons : Array [1..2] of hWnd; {Handl'� 狎悖悚 [1] - OK, [2] - Stop}
- Edits     : array [1..9] of hWnd; {Handl'� 祚咱� ╰恕栂
- Checks    : array [0..5] of hWnd; {Handl'� c”�布錼 狎恥悖}
- Mode      : hWnd;                 {Handle 嵽咱芬桌� 鄍成�}
- Limits    : array [1..2] of hWnd; {Handl'� 漭花漅c� 祚咱� ␡�冽 ␡牐赤栂
- Realiz    : hWnd;                 {Handle 祚恬 ╰恕� 蝔嶉� 鄍𠼻豆䭾貝}
- RealNum   : UINT32;               {�洫 蝔嶉� 鄍𠼻豆䭾貝}
- CurReal   : UINT32;               {𤨎芥擉� 陋洛� �市豆䭾豕, 兕祚恢坏蜾摬 
-                                    兕恃蝔漭恢陋 井� �╲悔丞陋ㄝ �嶍鄍丰咱郃
-                                    漅蟡� � 鄍成洛 栽�云良
- Plot      : hWnd;                 {Handle ␡牐赤栂
-
-{��洧蟡嶊言 恣磪芬� - 礅布平碲 嶁摵布� �摽恥恐� 恣嶉膃芍�剁}
-{ 㴓兕�言  -  嶈. �ㄝ垣╳� 洫扎恬 Core.pas}
+ TextOut   : Text;     {苳訄邿郅郋赲�邿 迡迮�郕�邽郈�郋� �迮郕��郋赲郋迣郋 赲�赲郋迡訄 �迮郱�郅��訄�郋赲}
+ RunNum    : Integer;  {�郋邾迮� 郱訄郈��郕訄 �邽��迮邾� (郈郋 郇迮邾� �訄郱郅邽�訄���� �訄邿郅� 赲�赲郋迡訄}
+ RunMode   : boolean;  {�迮迠邽邾 �訄訇郋�� (�訄訇郋�邽邿/郋�郅訄迡郋�郇�邿)}
+ Parent    : hWNd;     {Handle 郋�郇郋赲郇郋迣郋 郋郕郇訄 郈�郋迣�訄邾邾�}
+ Stat      : EStatus;  {苠迮郕��迮迮 �訄訇郋�迮迮 �郋��郋�郇邽迮}
+ OCButtons : Array [1..2] of hWnd; {Handl'� 郕郇郋郈郋郕 [1] - OK, [2] - Stop}
+ Edits     : array [1..9] of hWnd; {Handl'� 郈郋郅迮邿 赲赲郋迡訄}
+ Checks    : array [0..5] of hWnd; {Handl'� 赲�訇邽�訄迮邾�� 郕郇郋赲郋郈}
+ Mode      : hWnd;                 {Handle �迮郅迮郕�郋�訄 �迮迠邽邾訄}
+ Limits    : array [1..2] of hWnd; {Handl'� �迮郕��郋赲�� 郈郋郅迮邿 迣�訄郇邽� 迣�訄�邽郕訄}
+ Realiz    : hWnd;                 {Handle 郈郋郅� 赲赲郋迡訄 �邽�郅訄 �迮訄郅邽郱訄�邽邿}
+ RealNum   : UINT32;               {苤訄邾郋 �邽�郅郋 �迮訄郅邽郱訄�邽邿}
+ CurReal   : UINT32;               {苠迮郕��邽邿 郇郋邾迮� �訄迮郅邽郱訄�邽邽, 邽�郈郋郅�郱迮���� 
+                                    邽�郅��邽�迮郅�郇郋 迡郅� �訄赲郇郋邾迮�郇郋迣郋 �訄�郈�迮迡迮郅迮郇邽
+                                    �郋�迮郕 赲 �迮迠邽邾迮 郋�郅訄迡郕邽}
+ Plot      : hWnd;                 {Handle 迣�訄�邽郕訄}
+
+{�邽郇訄邾邽�迮�郕邽迮 郋訇�迮郕�� - �郅迮邾迮郇�� �邽��迮邾� 邾訄��郋赲郋迣郋 郋訇�郅�迠邽赲訄郇邽�}
+{ �郈邽�訄郇邽迮  -  �邾. 郱訄迣郋郅郋赲郋郕 邾郋迡�郅� Core.pas}
  Model  : ^CModel;      
  Buffer : PBuffer;
  Device : PDevice;
  Srcs1, Srcs2,Srcs3 : PSource;
 
- BegVal,                {��恢卿�/狙郊蝑諝 妣-� 嶊桌桑漼 能芋桌栂
+ BegVal,                {�訄�訄郅�郇�迮/郕郋郇迮�郇�迮 郱郇-� �郕郋�郋��邽 郈�邽訇郋�訄}
  LastVal : Real;        
 
- Steps   : integer;     {秄嶉� �ㄝ� 栽 ��恢陋ㄝ � 狙郊蝑悔� 妣-� 能芋桌�
-                         (蝔嶉� 漅蟡� � ␡牐赤�)}
- CurStep : integer;     {𤨎芥擉� �ㄎ
+ Steps   : integer;     {虴邽�郅郋 �訄迣郋赲 郋� 郇訄�訄郅�郇郋迣郋 郕 郕郋郇迮�郇郋邾� 郱郇-� 郈�邽訇郋�訄
+                         (�邽�郅郋 �郋�迮郕 郇訄 迣�訄�邽郕迮)}
+ CurStep : integer;     {苠迮郕��邽邿 �訄迣}
 
- BufferSize : integer;  {�狙摵� ~銗� 洫丰咧}
- S1,S2,S3 : Real;       {麐桌桑漼 兕漅蝑赤恥}
+ BufferSize : integer;  {�邾郕郋��� 訇��迮�訄 邾郋迡迮郅邽}
+ S1,S2,S3 : Real;       {苤郕郋�郋��邽 邽��郋�郇邽郕郋赲}
 
- Delta, DovInt : real;  {�摵鉈帚� ╞鉈檺陋摵巧}
+ Delta, DovInt : real;  {�訄���郋邿郕邽 赲迮�郋��郇郋��迮邿}
 
 {----------------------------------------------------------------}
-Function GetFloat(aH:hWND):real; {𢛵酊璅� 摞兩諲�� ╞擖摵╞限恭 妣-� 豆 祚恬
-                                  ╰恕栂
+Function GetFloat(aH:hWND):real; {苳�郇郕�邽� ��邽��赲訄迮� 赲迮�迮��赲迮郇郇郋迮 郱郇-迮 邽郱 郈郋郅�
+                                  赲赲郋迡訄}
 var
  st : string;
  ret : real;
@@ -68,7 +68,7 @@ begin
   GetFloat := ret;
 end;
 {----------------------------------------------------------------}
-Procedure GetParams; {𤑳兩諲�言 S亙 妣-郃� 豆 祚咱� ╰恕栂
+Procedure GetParams; {苤�邽��赲訄郇邽迮 赲�迮� 郱郇-郇邽邿 邽郱 郈郋郅迮邿 赲赲郋迡訄}
 var
  st : string[50];
  i  : integer;
@@ -93,8 +93,8 @@ begin
     Val(st,Delta,i);
 end;
 
-Procedure InitModel; {��恢�� 身冽�咧�璅� 妣删平貝 洫丰咧 � 
-                      身冽�咧�璅� 尹�洧蟡嶊典 恣磪芬恥}
+Procedure InitModel; {�訄�訄郅�郇訄� 邽郇邽�邽訄郅邽郱訄�邽� 郱郇訄�迮郇邽邿 邾郋迡迮郅邽 邽 
+                      邽郇邽�邽訄郅邽郱訄�邽� 迡邽郇訄邾邽�迮�郕邽� 郋訇�迮郕�郋赲}
 begin
  Delta := 0.1;
  DovInt := 1.64;
@@ -121,8 +121,8 @@ begin
  Model^.AddNewSource(Srcs3);
 end;
 
-Procedure StartModel; {𥐰格奶蜬� 祚不栽恥爸 � 摵恷� 洫丰咧鉈�郃� 能� 
-                       膋𡵆�卿� 妣删平剁憢
+Procedure StartModel; {��郋�迮迡��訄 郈郋迡迣郋�郋赲郕邽 邽 ��訄��訄 邾郋迡迮郅邽�郋赲訄郇邽� 郈�邽 
+                       �郕訄郱訄郇郇�� 郱郇訄�迮郇邽��}
 var
  XY : TRPoint;
  nm : string;
@@ -185,10 +185,10 @@ begin
 end;
 
 
-{墰陋╲悟 恣�&瞀赤 嵼恣擖郃� (messages) 栽 嶁摵布� (␡牐函丟狙ㄝ 洫扎恬).
- 𧎚 角幼垣ㄗ� Win32 API (C) Microsoft - 桑陋╲𩤃 能格奶蜬� S巧 能恐�洵�,
- � 郊� ��乒摬 S� 鄍阸璅� � 丰抨潳剁 祚恢妙�漭恬, ��╲� � ╲蜾鄍限巧
- 垣ㄗ狙� 能恐�洵觱
+{��郇郋赲郇郋邿 郋訇�訄訇郋��邽郕 �郋郋訇�迮郇邽邿 (messages) 郋� �邽��迮邾� (迣�訄�邽�迮�郕郋迣郋 邾郋迡�郅�).
+ �郋 邽迡迮郋郅郋迣邽邽 Win32 API (C) Microsoft - 郋�郇郋赲郇訄� 郈�郋�迮迡��訄 赲�迮邿 郈�郋迣�訄邾邾�,
+ 赲 郇迮邿 郱訄迡訄迮��� 赲�� �迮訄郕�邽� 郇訄 迡迮邿��赲邽� 郈郋郅�郱郋赲訄�迮郅�, 郇訄�訄赲郇迮 � 赲郇���迮郇郇迮邿
+ 郅郋迣邽郕郋邿 郈�郋迣�訄邾邾�}
 Function WindowProc(ahWnd:HWND;aMsg,wParam,lParam:UINT32):UINT32;far;
 var
  ps : LPPAINTSTRUCT;
@@ -198,8 +198,8 @@ var
  rt : RECT;
 begin
   case aMsg of
-    WM_CREATE: {蘂遉恭 嵼恣擖郃� 祚嶉� 嵼坐�剁 悚�, � 郊� - 身冽�咧�璅
-                � 嵼坐�言 S亙 亢蟡酯典 悚悌 (祚咱� ╰恕�, � 能桃.)}
+    WM_CREATE: {�迮�赲郋迮 �郋郋訇�迮郇邽迮 郈郋�郅迮 �郋郱迡訄郇邽� 郋郕郇訄, 赲 郇迮邾 - 邽郇邽�邽訄郅邽郱訄�邽
+                邽 �郋郱迡訄郇邽迮 赲�迮� 迡郋�迮�郇邽� 郋郕郋郇 (郈郋郅迮邿 赲赲郋迡訄, 邽 郈�郋�.)}
      begin
       OCButtons[1] := CreateWindow('OK','BUTTON',WS_CHILD,
                    66,350,50,30,ahWnd,NULL);
@@ -305,7 +305,7 @@ begin
       AddOnFrameMessage(ahWnd);
      end;
     WM_COMMAND:
-     {繧�&瞀赤 狙�迨 栽 狙冢悍恥 (狎悖悚, 祚咱� ╰恕�, 狎悖悚 c&�)}
+     {�訇�訄訇郋��邽郕 郕郋邾訄郇迡 郋� 郕郋郇�郋郅郋赲 (郕郇郋郈郋郕, 郈郋郅迮邿 赲赲郋迡訄, 郕郇郋郈郋郕 赲�訇郋�訄)}
      begin
       case wParam of
        1: if (lParam = 0)  and (Stat <> ST_RUNNING) then begin {OK button pressed}
@@ -317,7 +317,7 @@ begin
             PostMessage(ahWnd,WM_PAINT,0,0);
             PostMessage(OCButtons[2],WM_PAINT,0,0);
           end;
-       2: if lParam = 0 then {��� 狎悖� STOP}
+       2: if lParam = 0 then {郇訄迠訄�訄 郕郇郋郈郕訄 STOP}
            begin
             if Stat = ST_RUNNING then
              begin
@@ -331,7 +331,7 @@ begin
             else
               PostMessage(ahWnd,WM_DESTROY,0,0);
            end;
-        90: if lParam = 0 then begin {��/c物 鄍成� 栽�云良
+        90: if lParam = 0 then begin {�郕郅/赲�郕郅 �迮迠邽邾 郋�郅訄迡郕邽}
               RunMode := not RunMode;
               for i := 3 to 5 do
                 SendMessage(Checks[i],WM_SETVISIBLE,UINT32(RunMode),0);
@@ -343,9 +343,9 @@ begin
       end;
      end;
     WM_ONFRAME:
-    {墰陋╲悟 恣�&瞀赤 S巧 能恐�洵�, 坐丟� - ╲蜾鄍哨� 垣ㄗ�. �投�鍒摬
-     洛漅月 恣磪芬恥 洫丰咧 井� 桑蜒丟潳咱郃� 洫丰咧鉈�郃�. �爬� 能悄摎恕兩
-     亢�◤平言 漅蟡� � ␡牐赤, c╳� 漭花漅╳� 身銈酮䭾豕 � �帖.}
+    {��郇郋赲郇郋邿 郋訇�訄訇郋��邽郕 赲�迮邿 郈�郋迣�訄邾邾�, 郱迡迮�� - 赲郇���迮郇�� 郅郋迣邽郕訄. ��郱�赲訄����
+     邾迮�郋迡� 郋訇�迮郕�郋赲 邾郋迡迮郅邽 迡郅� 郋���迮��赲郅迮郇邽� 邾郋迡迮郅邽�郋赲訄郇邽�. 苠訄郕迠迮 郈�郋邽��郋迡邽�
+     迡郋訇訄赲郅迮郇邽迮 �郋�迮郕 郇訄 迣�訄�邽郕, 赲�赲郋迡 �迮郕��郋赲郋邿 邽郇�郋�邾訄�邽邽 赲 �訄邿郅.}
      begin
        if Stat = ST_RUNNING then
         begin
@@ -426,8 +426,8 @@ begin
         end;
      end;
     WM_DESTROY:
-    {䴴恣擖郃�, 能典恕毉孕 砲鄍� �╞骭平言� �&碲 能恐�洵�, 
-     坐丟� 能悄摎恕兩 桑╳&忖平言 �穿漼 � 蒤函漅戎郃� 恣磪芬恥 洫丰咧}
+    {苤郋郋訇�迮郇邽迮, 郈�邽�郋迡��迮迮 郈迮�迮迡 郱訄赲迮��迮郇邽迮邾 �訄訇郋�� 郈�郋迣�訄邾邾�, 
+     郱迡迮�� 郈�郋邽��郋迡邽� 郋�赲郋訇郋迠迡迮郇邽迮 郈訄邾��邽 邽 �郇邽��郋迠迮郇邽迮 郋訇�迮郕�郋赲 邾郋迡迮郅邽}
      begin
       if Stat <> ST_WAITING then begin
         Dispose(Model,Done);
@@ -438,12 +438,12 @@ begin
       PostQuitMessage(ahwnd);
      end;
     WM_KEYDOWN:
-    {𨯫阸璅� � ��漼� 物𨯂刻� 物𨯂�睼鳪}
+    {�迮訄郕�邽� 郇訄 郇訄迠訄�邽迮 郕郅訄赲邽�邽 郕郅訄赲邽訄����}
       if wParam = ord(SC_ESCAPE) then PostMessage(ahWnd,WM_DESTROY,0,0);
 
     WM_PAINT:
-    {繧�&瞀赤 能桌兕恥爸 悚�. �╳尹� 漅恢狙 摵罱蝁 洫丰咧鉈�郃�, S
-     桑�恢�� 能桌兕恥� c祚垠鴷皸� 亢蟡酯足� 悚�洧 �洫摵殷漭恢陋}
+    {�訇�訄訇郋��邽郕 郈�郋�邽�郋赲郕邽 郋郕郇訄. ��赲郋迡邽� �郋郅�郕郋 ��訄��� 邾郋迡迮郅邽�郋赲訄郇邽�, 赲�
+     郋��訄郅�郇訄� 郈�郋�邽�郋赲郕訄 赲�郈郋郅郇�迮��� 迡郋�迮�郇邽邾邽 郋郕郇訄邾邽 �訄邾郋��郋��迮郅�郇郋}
      begin
        ps := BeginPaint(ahWNd);
         wSetColor(ps,GlobalPalette.WindowFontColor);
@@ -459,19 +459,19 @@ begin
 end;
 
 
-{���.}
+{������.}
 begin
- if InitWin2K2 = ERR_OK then {�冽. ␡牐函丟狙� 祚戶兕漭禺}
+ if InitWin2K2 = ERR_OK then {�郇邽�. 迣�訄�邽�迮�郕郋邿 郈郋迡�邽��迮邾�}
  if RegisterClass('MSMO',WindowProc) = ERR_OK then
- {𨯫ㄗ摵�璅� 物��, � �爸� 恣�&瞀赤悔 嵼㏑漼屈
+ {�迮迣邽���訄�邽� 郕郅訄��訄, � �訄郕邽邾 郋訇�訄訇郋��邽郕郋邾 �郋訇��邽邿}
   begin
-    InitCommonControls; {�冽�咧�璅� 摵��飶卿� 物�嵼┘
+    InitCommonControls; {�郇邽�邽訄郅邽郱訄�邽� ��訄郇迡訄��郇�� 郕郅訄��郋赲}
     Parent:=CreateWindow('Configuration','MSMO',
                          WS_TITLE OR WS_SIZEABLE OR WS_MINMAX,
                          10,10,620,420,
                          NULL,NULL);
-    {䴴坐�言 桑陋╲恐� 悚�}    
-    MainRunLoop; {墰陋╲悟 璅物 能恐�洵觱
+    {苤郋郱迡訄郇邽迮 郋�郇郋赲郇郋迣郋 郋郕郇訄}    
+    MainRunLoop; {��郇郋赲郇郋邿 �邽郕郅 郈�郋迣�訄邾邾�}
   end;
- DoneWin2K2; {�╞骭平言 �&碲 ␡牐函丟狙� 祚戶兕漭禺}
+ DoneWin2K2; {�訄赲迮��迮郇邽迮 �訄訇郋�� 迣�訄�邽�迮�郕郋邿 郈郋迡�邽��迮邾�}
 end.

+ 1 - 1
PAS/!SPbSTU/sys2.PAS

@@ -28,7 +28,7 @@ begin
    Number := Number * base; 
    Inc(Number,NUMS[Inp[pos]]); 
   end;
- WriteLn('‚¢¥¤¥­­®¥ ç¨á«® ¢ ¤à. á¨á⥬ å áç¨á«¥­¨ï:');
+ WriteLn('Введенное чи�ло в др. �и�темах �чи�лени�:');
  for pos := 0 to 4 do 
   begin
     base := Bases[sBases[pos]]; 

+ 3 - 3
PAS/ARKENOID/ARKENOID.PAS

@@ -57,13 +57,13 @@ Begin
       end;
     max.score[i] := score;
     TextColor(cyan);
-    Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+    Write('П О З Д Р � В Л Я Ю');
     GotoXY(30,12);
     TextColor(Blue);
-    Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+    Write('Вы по�тавили рекорд');
     GotoXY(12,17);
     TextColor(Yellow);
-    Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 13 ᨬ¢®«®¢ ');
+    Write('Введите �вое им� до 13 �имволов ');
     TextColor(lightgreen);
     Read(max.name[i]);
     Seek(tbl,0);

+ 16 - 16
PAS/BINSUM.PAS

@@ -307,7 +307,7 @@ Begin
     begin
       setcolor(White);
       OutTextXY(362-17*15,189,inp[17]);
-      WriteResText('‹¨è­¨©!',17);
+      WriteResText('Лишний!',17);
       ReadKey;
       ClearResText;
       SetFillStyle(SolidFill,Black);
@@ -362,10 +362,10 @@ Begin
   WriteResNum(inp,true);
   if inp[16] = '1' then
     begin
-      WriteResText('Žâà¨æ â¥«ì­®¥',16);
+      WriteResText('Отрицательное',16);
       ReadKey;
       ClearResText;
-      WriteResText('ˆ­¢¥àâ¨àãî',16);
+      WriteResText('Инвертирую',16);
       ReadKey;
       Invert(inp);
       ClearResText;
@@ -377,17 +377,17 @@ Begin
       ClearResText;
       ClearResNum;
       WriteResNum(inp,false);
-      WriteResText('‚á¥ ŽŠ',1);
+      WriteResText('В�е ОК',1);
     end
   else
     begin
-      WriteResText('‚á¥ ŽŠ',1);
+      WriteResText('В�е ОК',1);
     end;
   if inp[16] = '1' then otr := true else otr := false;
   ToInt(inp,res);
   if otr then res := -res;
   str(res,tm);
-  insert('�¥§ã«ìâ â: ',tm,1);
+  insert('Результат: ',tm,1);
   SetColor(Green);
   OutTextXY(400,300,tm);
   ReadKey;
@@ -395,24 +395,24 @@ End;{WriteRes}
 {----------------=======================---------------------------}
 Begin
   InitG;
-  a := GetValue('‚¢¥¤¨â¥ ¯¥à¢®¥ ç¨á«®',320,240,-MaxInt,MaxInt,2);
-  b := GetValue('‚¢¥¤¨â¥ ¢â®à®¥ ç¨á«®',320,240,-MaxInt,MaxInt,2);
+  a := GetValue('Введите первое чи�ло',320,240,-MaxInt,MaxInt,2);
+  b := GetValue('Введите второе чи�ло',320,240,-MaxInt,MaxInt,2);
   aa := ToBinSimple(a);
   WriteA(aa);
   ab := ToBinSimple(b);
   WriteB(ab);
   if aa[16] = '1' then
    begin
-    WriteTextA(16,'Žâà¨æ â¥«ì­®¥');
+    WriteTextA(16,'Отрицательное');
     ReadKey;
     ClearText(1);
-    WriteTextA(16,'ˆ­¢¥àâ¨àãî');
+    WriteTextA(16,'Инвертирую');
     ReadKey;
     Invert(aa);
     ClearNumA;
     WriteA(aa);
     ClearText(1);
-    WriteTextA(16,'‚ ¤®¯. ¢¨¤');
+    WriteTextA(16,'В доп. вид');
     ReadKey;
     InAdd(aa);
     ClearNumA;
@@ -421,24 +421,24 @@ Begin
    end;
   if ab[16] = '1' then
    begin
-    WriteTextB(16,'Žâà¨æ â¥«ì­®¥');
+    WriteTextB(16,'Отрицательное');
     ReadKey;
     ClearText(2);
-    WriteTextB(16,'ˆ­¢¥àâ¨àãî');
+    WriteTextB(16,'Инвертирую');
     ReadKey;
     Invert(ab);
     ClearNumB;
     WriteB(ab);
     ClearText(2);
-    WriteTextB(16,'‚ ¤®¯. ¢¨¤');
+    WriteTextB(16,'В доп. вид');
     ReadKey;
     InAdd(ab);
     ClearNumB;
     WriteB(ab);
     ClearText(2);
    end;
-  WriteTextA(1,'⇴ OK');
-  WriteTextB(1,'⇴ OK');
+  WriteTextA(1,'В�е OK');
+  WriteTextB(1,'В�е OK');
   ReadKey;
   ClearText(1);
   ClearText(2);

+ 1 - 1
PAS/BRICKS.PAS

@@ -1035,7 +1035,7 @@ VAR i,j : integer;
     str : string;
 BEGIN
    InitObj;
-   Write('‚¢¥¤¨â¥ áâபã: ');
+   Write('Введите �троку: ');
    ReadLn(Str);
    I := Detect;
    InitGraph(I, J, '');

+ 33 - 33
PAS/BTree.pas

@@ -1,55 +1,55 @@
 Uses CRT;
 Type
-  UT = char;                            {𧎚恢妙�漭恢嶊貝 漼破
-  PBTree = ^TBTree;                     {𪑛𡵆罱市� � 丰鄍╳}
-  TBTree = record                       {𥐰桑漅 丰鄍╳}
-    info : UT;                          {鐯删平言}
-    count: word;                        {㿺咧蟡摵╳}
-    Left : PBTree;                      {𥅾�� ╞潳魺
-    Right: PBTree;                      {𥐰𨯂𩤃 ╞潳魺
+  UT = char;                            {�郋郅�郱郋赲訄�迮郅��郕邽邿 �邽郈}
+  PBTree = ^TBTree;                     {苺郕訄郱訄�迮郅� 郇訄 迡迮�迮赲郋}
+  TBTree = record                       {��郋��郋 迡迮�迮赲郋}
+    info : UT;                          {�郇訄�迮郇邽迮}
+    count: word;                        {�郋郅邽�迮��赲郋}
+    Left : PBTree;                      {�迮赲訄� 赲迮�赲�}
+    Right: PBTree;                      {��訄赲訄� 赲迮�赲�}
   end;
 
-Function NewChild(info:UT) : PBtree;    {𢛵酊璅� 嵼坐�剁 陋╳� ╞潳良
+Function NewChild(info:UT) : PBtree;    {苳�郇郕�邽� �郋郱迡訄郇邽� 郇郋赲郋邿 赲迮�赲邽}
 var
- ne : PBTree;                           {𪑛𡵆罱市� � 鄍扼恢�滭
+ ne : PBTree;                           {苺郕訄郱訄�迮郅� 郇訄 �迮郱�郅��訄�}
 begin
  New(ne);
- Ne^.info  := Info;                     {�祚垠鴷� 妣-囚
+ Ne^.info  := Info;                     {�訄郈郋郅郇�迮邾 郱郇-迮}
  Ne^.Left  := nil;
  Ne^.Right := nil;
- Ne^.count := 1;                        {㿺�-╳ - 1}
+ Ne^.count := 1;                        {�郋郅-赲郋 - 1}
  NewChild  := ne;
 end; {NewChild}
 {---------------------------------}
-Procedure DelBranch(br:PBTree);         {㨩𠼻平言 ╞潳�, ╱丟漼 � 丰碪洧}
+Procedure DelBranch(br:PBTree);         {苺迡訄郅迮郇邽迮 赲迮�赲邽, 赲邾迮��邽 � 迡迮��邾邽}
 begin
-  if br^.left <> nil then DelBranch(br^.left);  {�咧 丟碪 咱c� 鄍‘陋� -
-                                                 膉𠼻鴷� 奴徐
-  if br^.right <> nil then DelBranch(br^.right);{� 丟咧 丟碪 � 能𨯂諰 - �
-                                                 奴� 漅戎!}
-  Dispose(br);                                  {䴴﹥潳平陋 膉𠼻平言}
+  if br^.left <> nil then DelBranch(br^.left);  {��郅邽 迮��� 郅迮赲�邿 �迮訇迮郇郋郕 -
+                                                 �迡訄郅�迮邾 迮迣郋}
+  if br^.right <> nil then DelBranch(br^.right);{� 迮�郅邽 迮��� 邽 郈�訄赲�邿 - 邽
+                                                 迮迣郋 �郋迠迮!}
+  Dispose(br);                                  {苤郋訇��赲迮郇郇郋 �迡訄郅迮郇邽迮}
 end;{DelBranch}
 {---------------------------------}
-Procedure SetLRootRInfo(info:UT;Br:PBTree);     {��◤平言 陋╳ㄝ 妣-� �
-                                                 � ╞潳魺
+Procedure SetLRootRInfo(info:UT;Br:PBTree);     {�郋訇訄赲郅迮郇邽迮 郇郋赲郋迣郋 郱郇-� 郇訄
+                                                 郇訄 赲迮�赲�}
 begin
-  if info < Br^.info then                       {𧎚摠�布 � 咱╳}
+  if info < Br^.info then                       {�郋��郅訄迮邾 郇訄 郅迮赲郋}
    begin
-     if (Br^.Left=nil) then Br^.Left := NewChild(info)  {�咧 郃狙ㄝ - ╞�布}
-     else SetLRootRInfo(info,BR^.Left);            {�删� - 嶍蝁�布 � 咱╳}
+     if (Br^.Left=nil) then Br^.Left := NewChild(info)  {��郅邽 郇邽郕郋迣郋 - 赲迮�訄迮邾}
+     else SetLRootRInfo(info,BR^.Left);            {�郇訄�迮 - �郈��郕訄迮邾 郇訄 郅迮赲郋}
    end
-  else                                 {� 丟咧 �狙�-戎 - 聝市函芍�� 狙�-╳}
+  else                                 {� 迮�郅邽 �訄郕郋邿-迠迮 - �赲迮郅邽�邽赲訄迮邾 郕郋郅-赲郋}
    if (info=Br^.info) then inc(Br^.count)
-  else                                 {鐯删兩 悌� - 嶍��}
+  else                                 {�郇訄�邽� 郋郇郋 - �郈�訄赲訄}
    begin
-     if (Br^.Right=nil) then            {�咧 郃狙ㄝ - ╞�布 �能𨯂徐
+     if (Br^.Right=nil) then            {��郅邽 郇邽郕郋迣郋 - 赲迮�訄迮邾 郇訄郈�訄赲郋}
        Br^.Right := NewChild(info)
-     else SetLRootRInfo(info,BR^.Right);  {�删� - 嶍蝁�布 � 能𨯂徐
+     else SetLRootRInfo(info,BR^.Right);  {�郇訄�迮 - �郈��郕訄迮邾 郇訄 郈�訄赲郋}
    end;
 end;{SetLRootRInfo}
 {---------------------------------}
 Function MakeLRootRTree(st:string;count:word):PBTree;
-  {䴴坐�言 丐悄蝑恐� 丰鄍� 井� 祚兕�}
+  {苤郋郱迡訄郇邽迮 迡赲郋邽�郇郋迣郋 迡迮�迮赲訄 迡郅� 郈郋邽�郕訄}
 var
   ret : PBTree;
   pos : byte;
@@ -60,8 +60,8 @@ Begin
 End; {MakeLRootRTree}
 {---------------------------------}
 var
-  h : word;                         {�恣𠼻鴙𩤃 砲鄍洛限𩤃 - 陋洛� 蜬恥哨}
-Procedure FindInfo(info:UT;Br:PBTree); {𧎚兕� 妣-� � 丰鄍╞, � 祚戶蟡漅� H}
+  h : word;                         {�郅郋訇訄郅�郇訄� 郈迮�迮邾迮郇郇訄� - 郇郋邾迮� ��郋赲郇�}
+Procedure FindInfo(info:UT;Br:PBTree); {�郋邽�郕 郱郇-� 赲 迡迮�迮赲迮, � 郈郋迡��迮�郋邾 H}
 begin
  if (Br<>nil) then begin
  if (info<Br^.Info) then begin inc(h); FindInfo(info,Br^.Left) end
@@ -75,18 +75,18 @@ Var
   BTree : PBTree;
   ch    : char;
 BEGIN
-  WriteLn('�奶兩� �摽芍 井� 嵼坐�剁 丐悄蝑恐� 丰鄍� 祚兕� 洛漅亢� Left->Root->Right');
+  WriteLn('�赲迮迡邽�迮 邾訄��邽赲 迡郅� �郋郱迡訄郇邽� 迡赲郋邽�郇郋迣郋 迡迮�迮赲訄 郈郋邽�郕訄 邾迮�郋迡郋邾 Left->Root->Right');
   ReadLn(test);
   BTree := MakeLRootRTree(test,Length(test));
   h := 1;
-  WriteLn('�奶兩� 嶁洽悍 井� 祚兕� 祚 丰鄍U: ');
+  WriteLn('�赲迮迡邽�迮 �邽邾赲郋郅 迡郅� 郈郋邽�郕訄 郈郋 迡迮�迮赲�: ');
   ch := ReadKey;
   FindInfo(ch,BTree);
   DelBranch(BTree);
   if (h<>0) then
-    WriteLn('𪂹洽悍 ''',ch,''' �岸平 � ',h,'-悔 蜬恥郊')
+    WriteLn('苤邽邾赲郋郅 ''',ch,''' 郇訄邿迡迮郇 郇訄 ',h,'-郋邾 ��郋赲郇迮')
   else
-    WriteLn('𪂹洽悍 ''',ch,''' 郊 �岸平');
+    WriteLn('苤邽邾赲郋郅 ''',ch,''' 郇迮 郇訄邿迡迮郇');
   ReadKey;
 END.
 

+ 2 - 2
PAS/CELLS.PAS

@@ -91,9 +91,9 @@ Begin
 End;
 
 Begin
-  Write('‚¢¥¤¨â¥ à §¬¥à ï祩ª¨: ');
+  Write('Введите размер �чейки: ');
   ReadLn(size);
-{  Write('–¢¥â? (0-­¥âã) ');
+{  Write('Цвет? (0-нету) ');
   ReadLn(MainColor);}
   MainColor :=0;
   Start;

+ 37 - 37
PAS/CHISLA.PAS

@@ -1,16 +1,16 @@
 Uses CRT,DOS;
 Const
-  s : array [1..5] of string[27] = ('         �à®á⮥          ',
-                                    '     ‚§ ¨¬­® ¯à®áâë¥      ',
-                                    '       ‘®¢¥à襭­®¥        ',
-                                    '      „à㦥á⢥­­ë¥       ',
-                                    '          ‚ë室           ');
+  s : array [1..5] of string[27] = ('         Про�тое          ',
+                                    '     Взаимно про�тые      ',
+                                    '       Совершенное        ',
+                                    '      Друже�твенные       ',
+                                    '          Выход           ');
 
-  text1 : array [1..5] of string[50] = (' “§­ âì ¯à®á⮥ «¨ ç¨á«® ',
-                                        ' “§­ âì ¢§ ¨¬­® ¯à®áâë¥ «¨ 2 ç¨á«  ',
-                                        ' “§­ âì ᮢ¥à襭­®¥ «¨ ç¨á«® ',
-                                        ' “§­ âì ¤à㦥á⢥­­ë¥ «¨ 2 ç¨á«  ',
-                                        ' ‚ë室 ¨§ ¯à®£à ¬¬¬ë ');
+  text1 : array [1..5] of string[50] = (' Узнать про�тое ли чи�ло ',
+                                        ' Узнать взаимно про�тые ли 2 чи�ла ',
+                                        ' Узнать �овершенное ли чи�ло ',
+                                        ' Узнать друже�твенные ли 2 чи�ла ',
+                                        ' Выход из программмы ');
 
 Var
   IfExit  : boolean;
@@ -95,7 +95,7 @@ Var
   v1 : longint;
   i  : integer;
 Begin
-  v1 := ReadVal('‚¢¥¤¨â¥ 楫®¥ ç¨á«® ');
+  v1 := ReadVal('Введите целое чи�ло ');
   i  := 2;
   while (v1 mod i <> 0) and (i < v1) do inc(i);
   GotoXY(24,20);
@@ -104,12 +104,12 @@ Begin
   if i = v1 then
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«® ',v1,' ¯à®á⮥');
+      WriteLn('Чи�ло ',v1,' про�тое');
     end
   else
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«® ',v1,' ¨¬¥¥â ¤¥«¨â¥«ì ',i);
+      WriteLn('Чи�ло ',v1,' имеет делитель ',i);
     end;
   ReadKey;
   GotoXY(23,20);
@@ -124,8 +124,8 @@ Var
   i  : integer;
 
 Begin
-  v1 := ReadVal('‚¢¥¤¨â¥ ¯¥à¢®¥ ç¨á«® ');
-  v2 := ReadVal('‚¢¥¤¨â¥ ¢â®à®¥ ç¨á«® ');
+  v1 := ReadVal('Введите первое чи�ло ');
+  v2 := ReadVal('Введите второе чи�ло ');
   i  := 2;
   while not ((v1 mod i = 0) and (v2 mod i = 0)) and (i <= v1) do inc(i);
   GotoXY(24,20);
@@ -134,12 +134,12 @@ Begin
   if (i = v1+1) and (v2 mod v1 <> 0) then
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«  ¢§ ¨¬­® ¯à®áâë¥');
+      WriteLn('Чи�ла взаимно про�тые');
     end
   else
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«  ¨¬¥îâ ®¡é¨© ¤¥«¨â¥«ì ',i);
+      WriteLn('Чи�ла имеют общий делитель ',i);
     end;
   ReadKey;
   GotoXY(23,20);
@@ -152,7 +152,7 @@ Var
  i  : integer;
  summa : longint;
 Begin
-  v1 := ReadVal('‚¢¥¤¨â¥ 楫®¥ ç¨á«® ');
+  v1 := ReadVal('Введите целое чи�ло ');
   i  := 1;
   summa := 0;
   for i := 1 to v1-1 do
@@ -163,12 +163,12 @@ Begin
   if summa = v1 then
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«® ',v1, ' ᮢ¥à襭­®¥');
+      WriteLn('Чи�ло ',v1, ' �овершенное');
     end
   else
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«® ',v1, ' ­¥ ᮢ¥à襭­®¥ ');
+      WriteLn('Чи�ло ',v1, ' не �овершенное ');
     end;
   ReadKey;
   GotoXY(23,20);
@@ -183,8 +183,8 @@ Var
   i  : integer;
   summa1,summa2 : longint;
 Begin
-  v1 := ReadVal('‚¢¥¤¨â¥ ¯¥à¢®¥ ç¨á«® ');
-  v2 := ReadVal('‚¢¥¤¨â¥ ¢â®à®¥ ç¨á«® ');
+  v1 := ReadVal('Введите первое чи�ло ');
+  v2 := ReadVal('Введите второе чи�ло ');
   i  := 2;
   summa1 := 0;
   summa2 := 0;
@@ -199,12 +199,12 @@ Begin
   if (summa1 = v2) and (summa2 = v1) then
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«  ¤à㦥á⢥­­ë¥');
+      WriteLn('Чи�ла друже�твенные');
     end
   else
     begin
       TextColor(LightGray);
-      WriteLn('—¨á«  ­¥ ¤à㦥á⢥­­ë¥');
+      WriteLn('Чи�ла не друже�твенные');
     end;
   ReadKey;
   GotoXY(23,20);
@@ -237,21 +237,21 @@ Begin
   IFExit := false;
   SetCursorSize(16*16);
   TextColor(Green);
-  GotoXY(2,2);Write('É');GotoXY(2,24);Write('È');GotoXY(79,2);Write('»');
-  GotoXY(79,24);Write('¼');GotoXY(1,1);
+  GotoXY(2,2);Write('╔');GotoXY(2,24);Write('╚');GotoXY(79,2);Write('╗');
+  GotoXY(79,24);Write('�');GotoXY(1,1);
   for i := 3 to 78 do
     begin
       GotoXY(i,2);
-      Write('Í');
+      Write('�');
       GotoXY(i,24);
-      Write('Í')
+      Write('�')
     end;
   For i := 3 to 23 do
     begin
       GotoXY(2,i);
-      Write('º');
+      Write('â•‘');
       GotoXY(79,i);
-      Write('º')
+      Write('â•‘')
     end;
   TextColor(Blue);
   for i:= 1 to 5 do
@@ -265,16 +265,16 @@ Begin
   For i := 23 to 59 do
     begin
       GotoXY(i,19);
-      Write('Í');
+      Write('�');
       GotoXY(i,21);
-      Write('Í');
+      Write('�');
       GotoXY(i,23);
-      Write('Í');
+      Write('�');
     end;
-  GotoXY(22,19); Write('É'); GotoXY(22,20); Write('º'); GotoXY(22,23);
-  Write('È'); GotoXY(60,19); Write('»'); GotoXY(60,20); Write('º');
-  GotoXY(60,22); Write('º'); GotoXY(22,22); Write('º'); GotoXY(60,23);
-  Write('¼'); GotoXY(22,21); Write('Ì'); GotoXY(60,21); Write('¹');
+  GotoXY(22,19); Write('â•”'); GotoXY(22,20); Write('â•‘'); GotoXY(22,23);
+  Write('╚'); GotoXY(60,19); Write('╗'); GotoXY(60,20); Write('║');
+  GotoXY(60,22); Write('â•‘'); GotoXY(22,22); Write('â•‘'); GotoXY(60,23);
+  Write('�'); GotoXY(22,21); Write('╠'); GotoXY(60,21); Write('╣');
 End;{Init}
 {--------------------------------}
 Procedure Main;

+ 11 - 11
PAS/CRYPT.PAS

@@ -5,7 +5,7 @@ type
                 pass:array [1..5] of char;
         end;
 const
-        hh='�狙尹鉈�限諰 �帖'#13#10#26;
+        hh='�訄郕郋迡邽�郋赲訄郇郇�邿 �訄邿郅'#13#10#26;
 var
         f1,f2:file;
         t:header;
@@ -25,7 +25,7 @@ var
 begin
         write(mess);
         s:='';
-        write('偽偽偽偽偽偽偽偽偽偽'#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8);
+        write('�爗��爗��爗��爗��爗��爗��爗��爗��爗��爗�'#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8);
         repeat
                 m:=readkeyword;
                 if m=$0E08 then
@@ -59,7 +59,7 @@ end;
 
 procedure help;
 begin
-        writeln(#13#10'�妙� : CF <W_�帖> <c嬅�帖>');
+        writeln(#13#10'��郱郋赲 : CF <赲�_�訄邿郅> <赲��_�訄邿郅>');
         halt;
 end;
 
@@ -87,26 +87,26 @@ begin
         rewrite(f2,1);
         blockread(f1,t,sizeof(t));
         if t.title<>hh then
-        begin { 㿺尹飹布 f1 � f2 }
+        begin { �郋迡邽��迮邾 f1 赲 f2 }
                 seek(f1,0);
                 repeat
-                        getpass('�奶兩� �鉈恢 : ',p1);
-                        getpass('� 仿� �妙�    : ',p2);
-                        if p1<>p2 then writeln('舘芋桃� !');
+                        getpass('�赲迮迡邽�迮 郈訄�郋郅� : ',p1);
+                        getpass('� 迮�迮 �訄郱郋郕    : ',p2);
+                        if p1<>p2 then writeln('��邽訇郋�郕訄 !');
                 until p1=p2;
                 t.title:=hh;
                 t.name:='????????';
                 move(p1,t.pass,5);
                 blockwrite(f2,t,sizeof(t));
-                code('㿺尹鉈�郃� : ');
+                code('�郋迡邽�郋赲訄郇邽迮 : ');
         end else
         begin
-                getpass('�奶兩� �鉈恢 : ',p1);
-                if p1<>t.pass then writeln('舘芋桃� !') else
+                getpass('�赲迮迡邽�迮 郈訄�郋郅� : ',p1);
+                if p1<>t.pass then writeln('��邽訇郋�郕訄 !') else
                 begin
                         seek(f1,0);
                         blockread(f1,t,sizeof(t));
-                        code('�嶊恕兒恥�言 : ');
+                        code('�訄�郕郋迡邽�郋赲訄郇邽迮 : ');
                 end;
         end;
 end;

+ 13 - 13
PAS/ELKA.PAS

@@ -13,20 +13,20 @@ Const
  Var
   i : integer;
   Begin
-    SetFillStyle(10,10);                   { \   𥐰桌兕徐
-    SetColor(color);                       {  |  ◥� 砲遒
-                                           {  |  ╳ㄝ   }
+    SetFillStyle(10,10);                   { \   ��郋�邽�郋}
+    SetColor(color);                       {  |  赲郕訄 郈迮�}
+                                           {  |  赲郋迣郋   }
     DrawPoly(n,koor);                      {  |         }
-    FloodFill(koor[1].x,koor[1].y+10,10);  { /  瘔聜悍鴙赤栂
+    FloodFill(koor[1].x,koor[1].y+10,10);  { /  ���迣郋郅�郇邽郕訄}
 
     SetColor(13);
     Circle(koor[2].x,koor[2].y,abs((k-l))div 20);
-    SetFillStyle(1,13);                          { 𨫢嵼�郃� 𥅾╳ㄝ 芹膃�}
+    SetFillStyle(1,13);                          { �邽�郋赲訄郇邽迮 �迮赲郋迣郋 郕��迠郕訄}
     FloodFill(koor[2].x-1,koor[2].y,13);
 
     SetColor(12);
     Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20);
-    SetFillStyle(1,12);                          { 𨫢嵼�郃� 𥐰𨯂恐� 芹膃�}
+    SetFillStyle(1,12);                          { �邽�郋赲訄郇邽迮 ��訄赲郋迣郋 郕��迠郕訄}
     FloodFill(koor[3].x-1,koor[3].y,12);
 
     For i:=1 to 2 do
@@ -35,18 +35,18 @@ Const
     SetFillStyle(10,10);
 
     koor[1].y:=koor[2].y;
-    koor[2].y:=koor[2].y+mas[2].y-j;        {�蝔嶉平言 ╞骭身 嶉奶蜦镼ㄝ }
-    koor[3].y:=koor[2].y;                   { 瘔乓ㄝ恢郃�}
+    koor[2].y:=koor[2].y+mas[2].y-j;        {���邽�郅迮郇邽迮 赲迮��邽郇 �郅迮迡���迮迣郋 }
+    koor[3].y:=koor[2].y;                   { ��迮�迣郋郅�郇邽郕訄}
     koor[4].y:=koor[1].y;
 
-    DrawPoly(n,koor);                        { �� 能桌兕恥� � �芹㰘芍�言}
+    DrawPoly(n,koor);                        { �迣郋 郈�郋�邽�郋赲郕訄 邽 郱訄郕�訄�邽赲訄郇邽迮}
     FloodFill(koor[1].x,koor[1].y+10,10);
 
     SetColor(13);
     Circle(koor[2].x,koor[2].y,abs((k-l))div 20);
     SetFillStyle(1,13);
     FloodFill(koor[2].x-1,koor[2].y,13);
-    SetColor(12);                            {𢺋膃爸 絝�狙}
+    SetColor(12);                            {���迠郕邽 �迡郇訄郕郋}
     Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20);
     SetFillStyle(1,12);
     FloodFill(koor[3].x-1,koor[3].y,12);
@@ -55,15 +55,15 @@ Const
 
     SetColor(6);
     Rectangle(mas[1].x-((l-k)div 8),koor[3].y+1,mas[1].x+((l-k)div 8),koor[3].y+((mas[3].y-mas[1].y)div 5));
-    SetFillStyle(11,6);                   { 𥐰桌兕悚� 郃早奴� 狙鄖蝑失恐徐
-    FloodFill(mas[1].x,koor[3].y+4,6);    { 能麍柴ㄝ恢郃� }
+    SetFillStyle(11,6);                   { ��郋�邽�郋郕訄 郇邽迠郇迮迣郋 郕郋�邽�郇迮赲郋迣郋}
+    FloodFill(mas[1].x,koor[3].y+4,6);    { 郈��邾郋�迣郋郅�郇邽郕訄 }
   End;
 
 Procedure RectElka(x,y,xx,yy : Integer);
   Begin
     mas[1].x:=((x+xx)div 2);
     mas[4].x:=mas[1].x;
-    mas[2].x:=x;mas[3].x:=xx;                 { �蝔嶉平剁 ╞骭身 瘔-� ◢尹洫}
+    mas[2].x:=x;mas[3].x:=xx;                 { ���邽�郅迮郇邽� 赲迮��邽郇 ��-郕訄 赲邽迡邽邾郋}
     mas[1].y:=y;mas[2].y:=((yy+y)div 4);mas[3].y:=mas[2].y;
     mas[4].y:=mas[1].y;
     RecTreug(mas,10);

+ 27 - 27
PAS/Genetics/genunit.pas

@@ -1,22 +1,22 @@
 unit genunit;
 interface
 CONST
-  XCount         = 30; {�妞丞 祚恬}
+  XCount         = 30; {�訄郱邾迮� 郈郋郅�}
   YCount         = 20;
-  FieldSize	 = XCount * YCount div 8; {繧磪� 身銈酮䭾豕, 瘔央膆洫� 井� 孕 樈�平剁}
+  FieldSize	 = XCount * YCount div 8; {�訇�迮邾 邽郇�郋�邾訄�邽邽, ��迮訇�迮邾郋邿 迡郅� 迮迮 ��訄郇迮郇邽�}
   LifeTimeAdd    : array [0..9] of longint = (50,30,20,10,10,10,10,5,5,5);
 
 
 type
-              {�禺� 能足兩芍卿�, S奴� 恕� 樈悔桑悔� - 𧐢
-  EChromos = (CR_X); {蘂鄍�. 樈悔桑悔}
+              {苤訄邾�邿 郈�邽邾邽�邽赲郇�邿, 赲�迮迣郋 郋迡郇訄 ��郋邾郋�郋邾訄 - 苭}
+  EChromos = (CR_X); {�迮�迮�. ��郋邾郋�郋邾}
 CONST
   CFirstChromo : EChromos = CR_X;
    CLastChromo : EChromos = CR_X;
 TYPE
-	     {𧎚� (0-�), 2 ”� 璇乒�, 桑� 2 ”� 璇乒�,�妞丞,𪂹�,挱,
-	      ���,-//-2}
-  EGenesX = (GEN_X_GENDER,GEN_X_COL_RG,GEN_X_COL_BA, {蘂鄍蟡原 ㄔ陋� � X-樈悔桑悔囚
+	     {�郋郅 (0-邾), 2 訇邽�訄 �赲迮�訄, 郋�� 2 訇邽�訄 �赲迮�訄,�訄郱邾迮�,苤邽郅訄,苺邾,
+	      �郋郱�訄��,-//-2}
+  EGenesX = (GEN_X_GENDER,GEN_X_COL_RG,GEN_X_COL_BA, {�迮�迮�迮郇� 迣迮郇郋赲 赲 X-��郋邾郋�郋邾迮}
 	   GEN_X_SIZE,GEN_X_STRENGTH,GEN_X_MIND,GEN_X_AGE1,GEN_X_AGE2);
 CONST
   CFirstGeneX : EGenesX = GEN_X_GENDER;
@@ -29,29 +29,29 @@ TYPE
 
 
   EAStages = (AGE_CHILD,AGE_YOUTH,AGE_NORMAL,AGE_OLDMAN,AGE_DEAD);
-  	   {爗𨸹豕 ╳抉�� 物乒悚}
+  	   {苤�訄迡邽邽 赲郋郱�訄��訄 郕郅迮�郋郕}
 
-  TChromo  = array [EGenesX] of byte; {𨫼悔桑悔�, �� �&� ㄔ陋┘
+  TChromo  = array [EGenesX] of byte; {苭�郋邾郋�郋邾訄, 郕訄郕 郇訄訇郋� 迣迮郇郋赲}
 
   TChromos = array [EChromos] of TChromo;
-    {絝身桃卿� 樈悔桑悔卿� �&� (�神悄五諰)}
+    {�迡邽郇郋�郇�邿 ��郋邾郋�郋邾郇�邿 郇訄訇郋� (迣訄郈郅郋邽迡郇�邿)}
   Tvec	= record x,y:real; end;
   PCreature = ^Creature;
 {CReature}
   Creature  = object
     private
       Genos                  : array [1..2] of TChromos;
-					 {�陋漼� (尹神悄五諰 �&�)}
-      Age                    : longint;  {�抉�滭
-      AgeStage               : EAStages; {爗𨸹豕 ╳抉��}
-      MaxAge                 : longint;	 {�抉�� 嶈丞漼}
+					 {�迮郇郋�邽郈 (迡邽郈郅郋邽迡郇�邿 郇訄訇郋�)}
+      Age                    : longint;  {�郋郱�訄��}
+      AgeStage               : EAStages; {苤�訄迡邽邽 赲郋郱�訄��訄}
+      MaxAge                 : longint;	 {�郋郱�訄�� �邾迮��邽}
       Children		     : longint;
-      CrMom, CrDad           : pcreature;{𨯿尹漭咧}
+      CrMom, CrDad           : pcreature;{�郋迡邽�迮郅邽}
     Public
-      Gender                 : char;	 {𧎚� (W/M)}
-      Color                  : EColors;	 {硄乒}
-      Size                   : byte;	 {�妞丞}
-      Pos                    : Tvec;	 {𧎚垣戎郃� � 祚咱}
+      Gender                 : char;	 {�郋郅 (W/M)}
+      Color                  : EColors;	 {虷赲迮�}
+      Size                   : byte;	 {�訄郱邾迮�}
+      Pos                    : Tvec;	 {�郋郅郋迠迮郇邽迮 郇訄 郈郋郅迮}
       Constructor Init(apos : tvec; aC1,aC2 : TChromos;aMom,aDad : pcreature);
       Procedure   SetGamete(var aG : TChromos);
       Procedure   AddChild;
@@ -60,7 +60,7 @@ TYPE
 {/CReature}
 
   PCList = ^TCList;
-  TCList = record	{麪兕悚 摦擖摵┘
+  TCList = record	{苤郈邽�郋郕 ���迮��赲}
     Cr   : pcreature;
     Next,Prev : PCList;
   end;
@@ -68,18 +68,18 @@ TYPE
   TCreatureEnumProc = procedure(pC : PCreature);
 
 {CWorld}
-  CWorld = object	{繧磪芬 - 洧遒
-    Field 	   : array [1..FieldSize] of byte; {�漅╳� 祚咱 摦擖摵┘
-    Creatures      : PCList;			   {�洧 摦擖摵�}
-    CreatureCount  : longint;			   {� 狙�-╳}
+  CWorld = object	{�訇�迮郕� - 邾邽�}
+    Field 	   : array [1..FieldSize] of byte; {�邽�郋赲郋迮 郈郋郅迮 ���迮��赲}
+    Creatures      : PCList;			   {苤訄邾邽 ���迮��赲訄}
+    CreatureCount  : longint;			   {�� 郕郋郅-赲郋}
     Constructor Init;
     Function  CreateChild(aPos:TVec; aMom,aDad : PCreature):PCreature;
-    procedure SetFieldPos(x,y : word);		   {𣞢�陋◥� ”� � 祚咱}
+    procedure SetFieldPos(x,y : word);		   {苺��訄郇郋赲郕訄 訇邽�訄 赲 郈郋郅迮}
     Function  GetFieldPos(x,y:word) : boolean;     {..}
     Procedure ForEachCreature(aProc : TCreatureEnumProc);
-    procedure UnSetFieldPos(x,y : word);	   {麢檺言 ”� 祚恬}
+    procedure UnSetFieldPos(x,y : word);	   {苤郇��邽迮 訇邽�訄 郈郋郅�}
     Function  AddNewCreature(aPos : tvec; aC1,aC2 : TChromos;aMom,aDad : pcreature):pCreature;
-					   {��◤平言 摦擖摵� � 洧遒
+					   {�郋訇訄赲郅迮郇邽迮 ���迮��赲訄 赲 邾邽�}
     Destructor Done;
   end;
 {CWorld}

+ 2 - 2
PAS/Graph/slen.pas

@@ -59,8 +59,8 @@ BEGIN
   pE :=1;
   sT :=1;
   En :=7;
-  WriteLn('𢺋罱�抵孕 �摽漅麰言 栽 ',sT, ' 亢 ',en,' �╲� ',ShortLen(st,en));
-  WriteLn('譌碪 :');
+  WriteLn('��訄��訄邿�迮迮 �訄���郋�郇邽迮 郋� ',sT, ' 迡郋 ',en,' �訄赲郇郋 ',ShortLen(st,en));
+  WriteLn('���� :');
   repeat
     WriteLn(Path[pE]);
     dec(pE)

+ 1 - 1
PAS/HDR2BBS.PAS

@@ -38,7 +38,7 @@ Begin
         FindNext(files)
       end;
       close(BBSFile);
-      WriteLn('Files.bbs § ¯®«­¥­® ᮤ¥à¦ ­¨¥¬ HDR ä ©«®¢','  ',path);
+      WriteLn('Files.bbs заполнено �одержанием HDR файлов','  ',path);
     end
   else case err of
    2: writeln('File not found','  ',path);

+ 20 - 20
PAS/HILBERT.PAS

@@ -1,12 +1,12 @@
 {==================}
-{ˆ­ä®p¬ â¨ª  1999/8}
+{Инфоpматика 1999/8}
 {==================}
-{ Šp¨¢ë¥ ƒ¨«ì¡¥pâ  }
+{ Кpивые Гильбеpта }
 {==================}
 uses CRT, Graph;
 const
-  del = 1; {§ ¤¥p¦ª }
-  path = ''; {ä ©«ë *.bgi ¢ p ¡®ç¥¬ ª â «®£¥}
+  del = 1; {задеpжка}
+  path = ''; {файлы *.bgi в pабочем каталоге}
 var
   d, r : integer;
   n, orient : byte;
@@ -72,7 +72,7 @@ begin
     end
 end;
 
-function Power2 (n : byte) : word; {¢®§¢¥¤¥­¨¥ 2 ¢ á⥯¥­ì n}
+function Power2 (n : byte) : word; {возведение 2 в �тепень n}
 var  p, i : word;
 begin
   p := 2;
@@ -82,37 +82,37 @@ end;
 
 BEGIN
   ClrScr;
-  {¢¢®¤ ¨á室­ëå ¤ ­­ëå ¤«ï ¯®áâp®¥­¨ï ªp¨¢®© ƒ¨«ì¡¥pâ }
+  {ввод и�ходных данных дл� по�тpоени� кpивой Гильбеpта}
   repeat
-    Write ('‚¢¥¤¨â¥ ¤«¨­ã áâ®p®­ë ®¯®p­®£® ª¢ ¤p â ');
-    Write (' ¢ % ®â ¢ëá®âë íªp ­  ');
+    Write ('Введите длину �тоpоны опоpного квадpата');
+    Write (' в % от вы�оты �кpана ');
     ReadLn (prs)
   until prs < 100;
-  Write ('‚¢¥¤¨â¥ ¯®p冷ª ªp¨¢®© ');
+  Write ('Введите поp�док кpивой ');
   ReadLn (n);
   repeat
-    Write ('‚¢¥¤¨â¥ ®p¨¥­â æ¨î ªp¨¢®©:');
-    Write ('¢¢¥på - 1, ¢­¨§ - 2, ¢¯p ¢® - 3, ¢«¥¢® - 4 ');
+    Write ('Введите оpиентацию кpивой:');
+    Write ('ввеpх - 1, вниз - 2, впpаво - 3, влево - 4 ');
     ReadLn (orient)
   until (orient >= 1) and (orient <= 4);
   
   d := detect;
   InitGraph (d, r, path);
   SetColor (LightRed);
-  hscr := GetMaxY + 1; {¢ëá®â  íªp ­ }
-  wscr := GetMaxX + 1; {è¨p¨­  íªp ­ }
-  s := Round (prs / 100 * hscr); {áâ®p®­  ª¢ ¤p â }
-  h := Round (s / Power2 (n) - 1); {¤«¨­  á¢ï§®ª}
-  {H å®¤¨¬ ª®®p¤¨­ âë ­ ç «ì­®© â®çª¨ ªp¨¢®©. „«ï ®p¨¥­â æ¨¨:
-   ¢¢¥på ¨ ¢¯p ¢® ­ ç «ì­ ï â®çª  - «¥¢ ï ­¨¦­ïï â®çª  ª¢ ¤p â ;
-   ¢­¨§ ¨ ¢«¥¢® - ¯p ¢ ï ¢¥på­ïï â®çª  ª¢ ¤p â }
+  hscr := GetMaxY + 1; {вы�ота �кpана}
+  wscr := GetMaxX + 1; {шиpина �кpана}
+  s := Round (prs / 100 * hscr); {�тоpона квадpата}
+  h := Round (s / Power2 (n) - 1); {длина �в�зок}
+  {Hаходим кооpдинаты начальной точки кpивой. Дл� оpиентации:
+   ввеpх и впpаво начальна� точка - лева� нижн�� точка квадpата;
+   вниз и влево - пpава� веpхн�� точка квадpата}
   case orient of
-    1, 3 : {¢¢¥på ¨«¨ ¢¯p ¢®}
+    1, 3 : {ввеpх или впpаво}
            begin
              x0 := wscr div 2 - s div 2;
              y0 := hscr div 2 + s div 2
            end;
-    2, 4 : {¢­¨§ ¨«¨ ¢«¥¢®}
+    2, 4 : {вниз или влево}
            begin
              x0 := wscr div 2 + s div 2;
              y0 := hscr div 2 - s div 2

+ 20 - 20
PAS/HILBERT2.PAS

@@ -1,12 +1,12 @@
 {==================}
-{ˆ­ä®p¬ â¨ª  1999/8}
+{Инфоpматика 1999/8}
 {==================}
-{ Šp¨¢ë¥ ƒ¨«ì¡¥pâ  }
+{ Кpивые Гильбеpта }
 {==================}
 uses CRT, Graph;
 const
-  del = 1; {§ ¤¥p¦ª }
-  path = ''; {ä ©«ë *.bgi ¢ p ¡®ç¥¬ ª â «®£¥}
+  del = 1; {задеpжка}
+  path = ''; {файлы *.bgi в pабочем каталоге}
 var
   d, r : integer;
   n, orient : byte;
@@ -72,7 +72,7 @@ begin
     end
 end;
 
-function Power2 (n : byte) : word; {¢®§¢¥¤¥­¨¥ 2 ¢ á⥯¥­ì n}
+function Power2 (n : byte) : word; {возведение 2 в �тепень n}
 var  p, i : word;
 begin
   p := 2;
@@ -82,37 +82,37 @@ end;
 
 BEGIN
   ClrScr;
-  {¢¢®¤ ¨á室­ëå ¤ ­­ëå ¤«ï ¯®áâp®¥­¨ï ªp¨¢®© ƒ¨«ì¡¥pâ }
+  {ввод и�ходных данных дл� по�тpоени� кpивой Гильбеpта}
   repeat
-    Write ('‚¢¥¤¨â¥ ¤«¨­ã áâ®p®­ë ®¯®p­®£® ª¢ ¤p â ');
-    Write (' ¢ % ®â ¢ëá®âë íªp ­  ');
+    Write ('Введите длину �тоpоны опоpного квадpата');
+    Write (' в % от вы�оты �кpана ');
     ReadLn (prs)
   until prs < 100;
-  Write ('‚¢¥¤¨â¥ ¯®p冷ª ªp¨¢®© ');
+  Write ('Введите поp�док кpивой ');
   ReadLn (n);
   repeat
-    Write ('‚¢¥¤¨â¥ ®p¨¥­â æ¨î ªp¨¢®©:');
-    Write ('¢¢¥på - 1, ¢­¨§ - 2, ¢¯p ¢® - 3, ¢«¥¢® - 4 ');
+    Write ('Введите оpиентацию кpивой:');
+    Write ('ввеpх - 1, вниз - 2, впpаво - 3, влево - 4 ');
     ReadLn (orient)
   until (orient >= 1) and (orient <= 4);
   
   d := detect;
   InitGraph (d, r, path);
   SetColor (LightRed);
-  hscr := GetMaxY + 1; {¢ëá®â  íªp ­ }
-  wscr := GetMaxX + 1; {è¨p¨­  íªp ­ }
-  s := Round (prs / 100 * hscr); {áâ®p®­  ª¢ ¤p â }
-  h := Round (s / Power2 (n) - 1); {¤«¨­  á¢ï§®ª}
-  {H å®¤¨¬ ª®®p¤¨­ âë ­ ç «ì­®© â®çª¨ ªp¨¢®©. „«ï ®p¨¥­â æ¨¨:
-   ¢¢¥på ¨ ¢¯p ¢® ­ ç «ì­ ï â®çª  - «¥¢ ï ­¨¦­ïï â®çª  ª¢ ¤p â ;
-   ¢­¨§ ¨ ¢«¥¢® - ¯p ¢ ï ¢¥på­ïï â®çª  ª¢ ¤p â }
+  hscr := GetMaxY + 1; {вы�ота �кpана}
+  wscr := GetMaxX + 1; {шиpина �кpана}
+  s := Round (prs / 100 * hscr); {�тоpона квадpата}
+  h := Round (s / Power2 (n) - 1); {длина �в�зок}
+  {Hаходим кооpдинаты начальной точки кpивой. Дл� оpиентации:
+   ввеpх и впpаво начальна� точка - лева� нижн�� точка квадpата;
+   вниз и влево - пpава� веpхн�� точка квадpата}
   case orient of
-    1, 3 : {¢¢¥på ¨«¨ ¢¯p ¢®}
+    1, 3 : {ввеpх или впpаво}
            begin
              x0 := wscr div 2 - s div 2;
              y0 := hscr div 2 + s div 2
            end;
-    2, 4 : {¢­¨§ ¨«¨ ¢«¥¢®}
+    2, 4 : {вниз или влево}
            begin
              x0 := wscr div 2 + s div 2;
              y0 := hscr div 2 - s div 2

+ 3 - 3
PAS/IsPrime.pas

@@ -1,7 +1,7 @@
 {IsPrime.Pas ver. 2.0 (c) Max Alekseyev <relf@os2.ru>, 2:5015/60@FidoNet}
-{�¥ «¨§ æ¨ï ¢¥à®ïâ­®áâ­®£®  «£®à¨â¬  Œ¨««¥à -� ¡¨­  á 20 à ã­¤ ¬¨.
-„«ï ¯à¨¬¥à  ¢ë¤ ¥â ¯à®áâë¥ ­  ®â१ª¥ [1000000000,1000100000].
-‚¥à®ïâ­®áâì ®è¨¡ª¨ (â®, çâ® á®áâ ¢­®¥ ç¨á«® ¡ã¤¥â ­ §¢ ­® ¯à®áâë¬) ¬¥­ìè¥
+{Реализаци� веро�тно�тного алгоритма Миллера-Рабина � 20 раундами.
+Дл� примера выдает про�тые на отрезке [1000000000,1000100000].
+Веро�тно�ть ошибки (то, что �о�тавное чи�ло будет названо про�тым) меньше
 4^(-Rounds).}
 
 const Rounds=20;

+ 2 - 2
PAS/Japan/japcross.pas

@@ -153,8 +153,8 @@ begin
              else Write(Pict,' ',i,' ');
     for j:= 1 to sizex do
      case Lines^[i]^[j] of
-      1 : write(pict,'þ');
-      -1: write(pict,'ú');
+      1 : write(pict,'â– ');
+      -1: write(pict,'·');
       0 : write(pict,' ');
      end;
     Writeln(pict);

+ 19 - 19
PAS/Kitten mail Log Viewer/kitlog.pas

@@ -67,14 +67,14 @@ Begin
   R.A.Y:=R.B.Y-1;
   New(StatusLine,Init(R,
     NewStatusDef(0,10,
-      NewStatusKey('~F3~ Žâªàëâì «®£',kbF3,cmOpen,
-      NewStatusKey('~Alt-X~ ‚ë室',kbAltX,cmQuit,
+      NewStatusKey('~F3~ Открыть лог',kbF3,cmOpen,
+      NewStatusKey('~Alt-X~ Выход',kbAltX,cmQuit,
       nil)),
     NewStatusDef(11,12,
-      NewStatusKey('Œ¥­î à ¡®âë á ä ©« ¬¨',kbNoKey,0,
+      NewStatusKey('Меню работы � файлами',kbNoKey,0,
       nil),
     NewStatusDef(13,14,
-      NewStatusKey('�®¬®éì ¯® ¯à®£à ¬¬¥',kbNoKey,0,
+      NewStatusKey('Помощь по программе',kbNoKey,0,
       nil),
     nil)))
   ));
@@ -87,14 +87,14 @@ Begin
   GetExtent(R);
   R.B.Y:=R.A.Y+1;
   MenuBar:=New(PMenuBar,Init(R,NewMenu(
-    NewSubMenu('~F~ ” ©«',11,
+    NewSubMenu('~F~ Файл',11,
         NewMenu(
-        NewItem('~O~ Žâªàëâì','F3',kbF3,cmOpen,hcNoContext,
-        NewItem('~X~ ‚ë室','AltX',kbAltX,cmQuit,hcNoContext,
+        NewItem('~O~ Открыть','F3',kbF3,cmOpen,hcNoContext,
+        NewItem('~X~ Выход','AltX',kbAltX,cmQuit,hcNoContext,
         nil))),
-    NewSubMenu('~H~ �®¬®éì',13,
+    NewSubMenu('~H~ Помощь',13,
         NewMenu(
-        NewItem('~I~ Ž£« ¢«¥­¨¥','CtrlF1',kbCtrlF1,cmHelp,hcNoContext,
+        NewItem('~I~ Оглавление','CtrlF1',kbCtrlF1,cmHelp,hcNoContext,
         nil)),
     nil))
   )));
@@ -109,7 +109,7 @@ var
 begin
 
   R.Assign(0,0,30,23);
-  W:=New(PLogDialog, Init(R,'‹®',PString(TL)^));
+  W:=New(PLogDialog, Init(R,'Ло',PString(TL)^));
   with W^ do
    begin
      RR1.Assign(28,2,29,15);
@@ -167,7 +167,7 @@ begin
   if not Exists then
     begin
       repeat
-        MessageBox('�ã⨠­¥¢¥à­ë!',nil,0);
+        MessageBox('Пути неверны!',nil,0);
 {        DisableCommands(GG);
         EnableCommands(GG);}
          if OptDial then
@@ -243,24 +243,24 @@ const
      TxtPath : 'mailer.log');
 begin
   R.Assign(5,6,75,19);
-  D:=New(PDialog, Init(R,'� áâனª  ¯ã⥩'));
+  D:=New(PDialog, Init(R,'�а�тройка путей'));
   with D^ do
    begin
      R.Assign(1,1,69,3);
-     Insert(New(PSTaticText,Init(R,#3'„«ï à ¡®âë ¯à®£à ¬¬ë ­¥®¡å®¤¨¬® ¢¢¥á⨠¯ã⨠ª «®£ ¬')));
+     Insert(New(PSTaticText,Init(R,#3'Дл� работы программы необходимо вве�ти пути к логам')));
      R.Assign(30,3,65,4);
      I := New(PInputLine, Init(R, 128));
      Insert(i);
      R.Assign(1,3,25,4);
-     Insert(New(PLabel,Init(R,'�ãâì ª BinLog''ã',I)));
+     Insert(New(PLabel,Init(R,'Путь к BinLog''у',I)));
      R.Assign(30,5,65,6);
      I := New(PInputLine, Init(R, 128));     Insert(i);
      R.Assign(1,5,25,6);
-     Insert(New(PLabel,Init(R,'�ãâì ª ⥪áâ. «®£ã',I)));
+     Insert(New(PLabel,Init(R,'Путь к тек�т. логу',I)));
      R.Assign(7,8,27,10);
      Insert(New(PButton, Init(R,'O~k~',cmOk,bfNormal)));
      R.Assign(42,8,62,10);
-     Insert(New(PButton, Init(R,'~Ž~⬥­¨âì',cmCancel,bfNormal)));
+     Insert(New(PButton, Init(R,'~О~тменить',cmCancel,bfNormal)));
      SetData(Data);
    end;
  case Desktop^.ExecView(D) of
@@ -330,7 +330,7 @@ begin
     if (DayScroller<>nil) then DayScroller^.SetValue(Log^.CurNum+1);
     if (Self.Owner<>nil) then
      begin
-      s1:='‹®£ ­  ';
+      s1:='Лог на ';
       Str(Log^.CurDaY^.Date.tm_mday,s2);
       s1:=s1+s2;
       Str(Log^.CurDaY^.Date.tm_mon,s2);
@@ -437,7 +437,7 @@ begin
        txtlog^.Read(st2[i],1);
        if (txtlog^.Status <> stOK) then
          begin
-           Ls^.Insert(NewStr('Žè¨¡ª  ®âªàëâ¨ï ä ©« '));
+           Ls^.Insert(NewStr('Ошибка открыти� файла'));
            exit;
          end;
      until (I>254) or (st2[I]=#10);
@@ -447,7 +447,7 @@ begin
   until txtlog^.GetPos>OE;
 
   R.Assign(1,1,77,22);
-  W:=New(PDialog,Init(R,'‹®£ ­  á¥áá¨î'));
+  W:=New(PDialog,Init(R,'Лог на �е��ию'));
   with W^ do
    begin
      GetClipRect(R);

+ 1 - 1
PAS/LIFE.PAS

@@ -83,7 +83,7 @@ Begin
    ClrScr;
    GotoXY(5,10);
    TextColor(Magenta);
-   Write('‚¢¥¤¨â¥ ç¨á«® ª«¥â®ª ¯® X, Y, § ¤¥à¦ªã: ');
+   Write('Введите чи�ло клеток по X, Y, задержку: ');
    ReadLn(Xcell,Ycell,Dl1);
  Until (Xcell in [1..160]) and (Ycell in [1..120]);
  InitVGA;

+ 1 - 1
PAS/Lagrange/L2.PAS

@@ -260,5 +260,5 @@ Begin
   DrawLagr(EndiP);
   ReadLn;
   CloseGraph;
-  WriteLn('‚모­ãâ® â®ç¥ª - ',CKick);
+  WriteLn('Выкинуто точек - ',CKick);
 End.

+ 1 - 1
PAS/Lagrange/L3.PAS

@@ -217,5 +217,5 @@ Begin
   DrawLagr(EndiP);
   ReadLn;
   CloseGraph;
-  WriteLn('‚모­ãâ® â®ç¥ª - ',CKick);
+  WriteLn('Выкинуто точек - ',CKick);
 End.

+ 1 - 1
PAS/Lagrange/larg.pas

@@ -234,5 +234,5 @@ Begin
   DrawLagr(EndiP);
   ReadLn;
   CloseGraph;
-  WriteLn('‚모­ãâ® â®ç¥ª - ',CKick);
+  WriteLn('Выкинуто точек - ',CKick);
 End.

+ 2 - 2
PAS/Long Multiply/MULTIPLY.PAS

@@ -33,7 +33,7 @@ Begin
     Begin
       WriteLn;
       repeat
-        Write('�¥¢¥à­®¥ ¨¬ï 1 - £® ä ¨« , ¢¢¥¤¨â¥ ­®¢®¥: ');
+        Write('�еверное им� 1 - го фаила, введите новое: ');
         Readln(name);
         Assign(f,name);
         Reset(f);
@@ -64,7 +64,7 @@ Begin
     Begin
       WriteLn;
       repeat
-        Write('�¥¢¥à­®¥ ¨¬ï 2 - £® ä ¨« , ¢¢¥¤¨â¥ ­®¢®¥: ');
+        Write('�еверное им� 2 - го фаила, введите новое: ');
         Readln(name);
         Assign(f,name);
         Reset(f);

+ 6 - 6
PAS/Matrixes/MTRXFND.PAS

@@ -49,7 +49,7 @@ Begin
   Reset(f1);
   If IOResult <> 0 then
     Repeat
-      Write('” ©« ­¥ ­ ©¤¥­, ¢¢¥¤¨â¥ ­®¢®¥ ¨¬ï: ');
+      Write('Файл не найден, введите новое им�: ');
       Readln(f);
       Assign(f1,f);
       Reset(f1);
@@ -68,7 +68,7 @@ Function GetValue:integer;
 Var s1:string;code,va1:integer;
 Begin
  Repeat
-  Write('‚¢¥¤¨â¥ ç¨á«® ¤«ï ¯®¨áª  ¢ ¬ âà¨æ¥ : ');
+  Write('Введите чи�ло дл� пои�ка в матрице : ');
   ReadLn(s1);
   Val(s1,va1,code);
  Until Code = 0;
@@ -95,12 +95,12 @@ Procedure WriteResult;
 Begin
   if FindM <> 0 then
    begin
-    WriteLn('ˆáª®¬®¥ §­ ç¥­¨¥ ­ ©¤¥­® ¢');
-    WriteLn('  áâப¥   : ',FindN);
-    WriteLn('  á⮫¡æ¥  : ',FindM)
+    WriteLn('И�комое значение найдено в');
+    WriteLn('  �троке   : ',FindN);
+    WriteLn('  �толбце  : ',FindM)
    end
   else
-   WriteLn('ˆáª®¬®¥ §­ ç¥­¨¥ ­¥ ­ ©¤¥­®')
+   WriteLn('И�комое значение не найдено')
 End;{WriteResult}
 {-----------------------------------}
 Begin

+ 1 - 1
PAS/Matrixes/MTRXSRT.PAS

@@ -38,7 +38,7 @@ Begin
   Reset(f);
   If IOResult <> 0 then
     Repeat
-      Write('” ©« ­¥ ­ ©¤¥­, ¢¢¥¤¨â¥ ­®¢®¥ ¨¬ï: ');
+      Write('Файл не найден, введите новое им�: ');
       Readln(fn);
       Assign(f,fn);
       Reset(f);

+ 4 - 4
PAS/Model/MATH.PAS

@@ -7,8 +7,8 @@ function min(a,b : real) : real;
 function max(a,b : real) : real;
 {}
 function RayCrossL(Ray,L : TRay; var P : TPoint) :boolean;
-{𢛵酊璅� ╳坎��乒 true 丟咧 怒� Ray 砲鄍嵽�乒 栽鄍妙� L;
-P- 㿺桌尹�碲 砲鄍嵽蟡郃鴸
+{苳�郇郕�邽� 赲郋郱赲�訄�訄迮� true 迮�郅邽 郅�� Ray 郈迮�迮�迮郕訄迮� 郋��迮郱郋郕 L;
+P- �郋郋�迡邽郇訄�� 郈迮�迮�迮�迮郇邽�}
 {---------------------------------------------------------------}
 Implementation
 {---------------------------------------------------------------}
@@ -36,12 +36,12 @@ begin
  if A2*B1-A1*B2=0 then exit;
  x:=(B1*C2-B2*C1)/(B2*A1-B1*A2);
  y:=(a1*c2-a2*c1)/(a2*b1-a1*b2);
- {𥐰恥丞鴷� � 能身𨸹咱早桑碪 漅蝒� 砲鄍嵽蟡郃� 栽鄍妒翥
+ {��郋赲迮��迮邾 郇訄 郈�邽郇訄迡郅迮迠郇郋��� �郋�郕邽 郈迮�迮�迮�迮郇邽� 郋��迮郱郕�}
  with L do
   if not ((((x2>=x1) and (x2>=x) and (x>=x1)) or ((x2<x1) and (x2<x) and (x<x1)))
       and (((y2>=y1) and (y2>=y) and (y>=y1)) or ((y2<y1) and (y2<y) and (y<y1))))
         then Exit;
- {𥐰恥丞鴷� � 能身𨸹咱早桑碪 怒誽}
+ {��郋赲迮��迮邾 郇訄 郈�邽郇訄迡郅迮迠郇郋��� 郅���}
  with Ray do
   if not ((((x2>=x1) and (x2>=x) and (x>=x1)) or ((x2<x1) and (x2<x) and (x<x1)))
       and (((y2>=y1) and (y2>=y) and (y>=y1)) or ((y2<y1) and (y2<y) and (y<y1))))

+ 1 - 1
PAS/Model/model.pas

@@ -26,7 +26,7 @@ BEGIN
   setFillStyle(Black,SolidFill);
   while not keyPressed do
    begin
-    OutTextXY(10,10,'‘¨¬ã«ïâ®à ¯ìï­®© ⮫¯ë');
+    OutTextXY(10,10,'Симул�тор пь�ной толпы');
     for i := 1 to mencount do Men[i].Draw;
     DelayBlock(10,2*MaxInt);
     ClearDevice;

+ 4 - 4
PAS/Num Systems/DIMDEM.PAS

@@ -23,15 +23,15 @@ begin
 end;
 
 begin
-  Write('‚¢¥¤¨â¥ á¨á⥬㠨áç¨á«¥­¨ï ¢¢®¤¨¬®£® ç¨á«  (k): ');
+  Write('Введите �и�тему и�чи�лени� вводимого чи�ла (k): ');
   ReadLn(k);
-  Write('‚¢¥¤¨â¥ ç¨á«® ¢ k-¨ç­®© á¨á⥬¥: ');
+  Write('Введите чи�ло в k-ичной �и�теме: ');
   ReadLn(ainp);
-  Write('‚¢¥¤¨â¥ ¤¥«¨â¥«ì ¢ 10-ç­®© á¨á⥬¥: ');
+  Write('Введите делитель в 10-чной �и�теме: ');
   ReadLn(divs);
   for i := 1 to Length(ainp) do
   ainp[i] := UpCase(ainp[i]);
   iinp := toDem(ainp);
-  if iinp mod divs = 0 then WriteLN('„¥«¨âáï') else WriteLn('�¥ „¥«¨âáï');
+  if iinp mod divs = 0 then WriteLN('Делит��') else WriteLn('�е Делит��');
   readln;
 end.

+ 1 - 1
PAS/Num Systems/DIV15.PAS

@@ -48,5 +48,5 @@ begin
   cur := toDem(curv);
   inc(sum,cur);
   close(fin);
-  if sum mod 15 = 0 then WriteLn('„¥«¨âáï') else WriteLn('�¥ „¥«¨âáï')
+  if sum mod 15 = 0 then WriteLn('Делит��') else WriteLn('�е Делит��')
 end.

+ 10 - 10
PAS/OLD/BIO.PAS

@@ -55,13 +55,13 @@ Begin
   SetColor(Green);
   Line(460,420,490,420);
   SetColor(White);
-  OutTextXY(100,415,'�漭咱芬. �芬芍�');
-  OutTextXY(305,415,'鍂夾�. �芬芍�');
-  OutTextXY(495,415,'𧢝格車��. �芬芍�');
+  OutTextXY(100,415,'�郇�迮郅迮郕�. �郕�邽赲郇');
+  OutTextXY(305,415,'苳邽郱邽�. �郕�邽赲郇');
+  OutTextXY(495,415,'衪邾郋�邽郋郇訄郅. �郕�邽赲郇');
   Str(d1,str1);
   Str(m1,str2);
   Str(y1,str3);
-  str4 := concat('�桌兩禺 � ',str1,'/',str2,'/',str3);
+  str4 := concat('�邽郋�邽�邾� 郇訄 ',str1,'/',str2,'/',str3);
   SetTextStyle(SansSerifFont,0,4);
   SetTextJustify(CenterText,CenterText);
   SetColor(LightBlue);
@@ -86,12 +86,12 @@ End;{Write_Bio}
 {-------------------------------}
 Procedure InputDates(var d1,m1,y1 : integer);
 var
-  correctly: Boolean; {𥐰豆�� 能𨯂走鴙恐� ╰恕栂
+  correctly: Boolean; {��邽郱郇訄郕 郈�訄赲邽郅�郇郋迣郋 赲赲郋迡訄}
 {-------------------}
 Procedure InpDate(text: string; var d,m,y: integer);
 const
-  YMIN = 1800; 		{𤔅郃�恢卿� 能𨯂走鴙諰 ㄝ弓
-  YMAX = 2000; 		{�花足𠼻鴙諰 能𨯂走鴙諰 ㄝ弓
+  YMIN = 1800; 		{�邽郇邽邾訄郅�郇�邿 郈�訄赲邽郅�郇�邿 迣郋迡}
+  YMAX = 2000; 		{�訄郕�邽邾訄郅�郇�邿 郈�訄赲邽郅�郇�邿 迣郋迡}
 begin {InpDate}
 repeat
   Write(text);
@@ -101,17 +101,17 @@ repeat
   if correctly then
    if (m = 2) and (d = 29) and (y mod 4 = 0)
    then
-     {崕蟡ㄝ 郊 丰�碪: 罿� 29 銗R𠼻� ◢嵼狙嵾恐� ㄝ�!}
+     {�邽�迮迣郋 郇迮 迡迮郅訄��: ��郋 29 �迮赲�訄郅� 赲邽�郋郕郋�郇郋迣郋 迣郋迡訄!}
    else
      correctly := d <= Size_of_Month[m];
   if not correctly then
-    WriteLn('舘芋� � �漭!')
+    WriteLn('��邽訇郕訄 赲 迡訄�迮!')
 until correctly
 end; {InpDate}
 {-------------------}
 begin {InputDates}
  repeat
- InpDate(' �奶兩� �睼 鉈忖平剁 � 銈酮罱� � � ��:',
+ InpDate(' �赲迮迡邽�迮 迡訄�� �郋迠迡迮郇邽� 赲 �郋�邾訄�迮 �� �� ����:',
                                                     d1,m1,y1);
  until correctly
 end; {InputDates}

+ 9 - 9
PAS/OLD/CENMMOS.PAS

@@ -42,7 +42,7 @@ Begin
  HideMouse;
  points[num]^.x := Xm;
  points[num]^.y := ym;
- points[num]^.massa := GetValue('‚¢¥¤¨â¥ ¬ ááã â®çª¨ ®â 1 ¤® 9',Xm,Ym,1,9);
+ points[num]^.massa := GetValue('Введите ма��у точки от 1 до 9',Xm,Ym,1,9);
  PutImage(points[num]^.x-Points[num]^.massa,points[num]^.y-Points[num]^.massa,
           circles[Points[num]^.massa]^,XorPut);
  Recenter;
@@ -127,14 +127,14 @@ Begin
   SetFillStyle(SolidFill,LightGray);
   SetTextJustify(CenterText,TopText);
   for i := 1 to 5 do Bar(515,i*70-20,625,i*70+30);
-  OutTextXY(570,65,'‘¬¥­¨âì');
-  OutTextXY(570,80,'â®çª¨');
-  OutTextXY(570,130,'‘â¥à¥âì');
-  OutTextXY(570,155,'âà ¥ªâ®à¨î');
-  OutTextXY(570,215,'‘®åà ­¨âì');
-  OutTextXY(570,280,'‡ £à㧨âì');
-  OutTextXY(570,350,'‚ë室');
-{-------===‚¢®¤ ¯®¨­â¥à®¢=======---------}
+  OutTextXY(570,65,'Сменить');
+  OutTextXY(570,80,'точки');
+  OutTextXY(570,130,'Стереть');
+  OutTextXY(570,155,'траекторию');
+  OutTextXY(570,215,'Сохранить');
+  OutTextXY(570,280,'Загрузить');
+  OutTextXY(570,350,'Выход');
+{-------===Ввод поинтеров=======---------}
    SetColor(White);
    SetLineStyle(SolidLn,1,1);
    for i := 1 to 9 do

+ 3 - 3
PAS/OLD/CHART.PAS

@@ -23,13 +23,13 @@ begin
   Summa := 0;
   Num_of_elem := 0;
   for i := 1 to 15 do values[i].num := 0;
-  WriteLn('‚¢®¤¨â¥ í«¥¬¥­âë (­¥ ¡®«¥¥ 15), ª®­¥æ ¢¢®¤  - 0');
+  WriteLn('Вводите �лементы (не более 15), конец ввода - 0');
   i := 0;
   repeat
     inc(i);
     ReadLn(values[i].num);
   until (i > 14) or (values[i].num = 0);
-  WriteLn('‚¢¥¤¨â¥ ⨯ ¤¨ £à ¬ë(1-®¤¨­ £à ä¨ª, 0-¬­®£® £à ä¨ª®¢)');
+  WriteLn('Введите тип диаграмы(1-один график, 0-много графиков)');
   ReadLn(type_of_diag);
   for i := 1 to 15 do if values[i].num <> 0 then inc(num_of_elem);
   if type_of_diag = 1 then
@@ -84,7 +84,7 @@ begin
     begin
       Str(values[i].num,string1);
       str(round(values[i].per*100),s2);
-      string1 := concat('—¨á«® ',string1,'(',s2,'%)');
+      string1 := concat('Чи�ло ',string1,'(',s2,'%)');
       SetFillStyle(SolidFill,i);
       Bar(330,((387 div 2) - (Num_of_elem * 10)-20)+i*20,380,((387 div 2) - (Num_of_elem * 10)-20)+i*20+15);
       OutTextXY(390,((380 div 2) - (Num_of_elem * 10)-15)+i*20,string1);

+ 1 - 1
PAS/OLD/CIRCLE.PAS

@@ -20,7 +20,7 @@ Begin
  SumVal := 0;
  for i:=1 to MaxValues do
    begin
-    values[i].n:=GetValue('‚¢®¤¨â¥ §­ ç¥­¨ï',GetMaxX div 2,GetMaxY div 2,1,32767);
+    values[i].n:=GetValue('Вводите значени�',GetMaxX div 2,GetMaxY div 2,1,32767);
     SumVal := SumVal + values[i].n;
    end;
  for i := 1 to MaxValues do values[i].p :=values[i].n/SumVal;

+ 30 - 30
PAS/OLD/DEMOMODE.PAS

@@ -210,13 +210,13 @@ Begin
       end;
     max.score[i] := col;
     TextColor(cyan);
-    Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+    Write('П О З Д Р � В Л Я Ю');
     GotoXY(30,12);
     TextColor(Blue);
-    Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+    Write('Вы по�тавили рекорд');
     GotoXY(12,17);
     TextColor(Yellow);
-    Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 20 ᨬ¢®«®¢ ');
+    Write('Введите �вое им� до 20 �имволов ');
     TextColor(lightgreen);
     Readln(max.name[i]);
     TextColor(7);
@@ -246,16 +246,16 @@ begin
   TextMode(CO80);
   SetCursorSize(16*256);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   {GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');}
+  Write('2 :  У�тановить Клавиши');}
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
@@ -295,12 +295,12 @@ begin
   GotoXY(1,5);
   Write('Y           : ');
   GotoXY(1,7);
-  Write('„«¨­  §¬¥ï  : ');
+  Write('Длина зме�  : ');
   GotoXY(1,9);
-  Write('—¨á«® 室®¢ : ');
+  Write('Чи�ло ходов : ');
   GotoXY(7,12);
   TextColor(LightBlue);
-  Write('‹ãç訥 ');
+  Write('Лучшие ');
   TextColor(LightGreen);
   for n := 1 to 10 do begin
     GotoXY(2,13 + n);
@@ -410,24 +410,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -496,7 +496,7 @@ begin
                                  inc(col,-a[whereX,WhereY]);
                                  TextColor(now);
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              dir := 2;
@@ -512,7 +512,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              dir := 3;
@@ -528,7 +528,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY] := num;
                              if b > 0 then dec(b);
@@ -544,7 +544,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              if b > 0 then dec(b);
@@ -561,7 +561,7 @@ begin
                                  inc(col, -a[WhereX,WhereY]);
                                  TextColor(now);
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY] := Num ;
                              if b > 0 then dec(b);
@@ -576,7 +576,7 @@ begin
                                  inc(col, -a[WhereX-1,WhereY+1]);                               TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              if b > 0 then dec(b);
@@ -592,7 +592,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY] := num;
                              if b > 0 then dec(b);
@@ -608,7 +608,7 @@ begin
                                  TextColor(now);
                                 end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY] := num ;
                              if b > 0 then dec(b);
@@ -635,7 +635,7 @@ begin
                           inc(col,-a[whereX,WhereY]);
                           TextColor(now);
                         end;
-                      Write('Í');
+                      Write('�');
                       inc(num);
                       a[WhereX-1,WhereY] := Num;
                       if b > 0 then b := b - 1;
@@ -652,7 +652,7 @@ begin
                           TextColor(now);
                         end;
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       inc(num);
                       a[WhereX-1,WhereY] := Num;
                       if b > 0 then b := b - 1;
@@ -669,7 +669,7 @@ begin
                           TextColor(now);
                         end;
                       GotoXY(Wherex-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       inc(Num);
                       a[WhereX-1,WhereY] := Num ;
                       if b > 0 then dec(b);
@@ -686,7 +686,7 @@ begin
                           TextColor(now);
                         end;
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       inc(Num);
                       a[WhereX-1,WhereY] := Num ;
                       if b > 0 then dec(b);

+ 3 - 3
PAS/OLD/EDITOR.PAS

@@ -59,15 +59,15 @@ Begin
   End;
   Inc(NumOfWords);
   GotoXY(2,13);
-  Write('‚ᥣ® á«®¢ ¢ ⥪áâ¥:        ', NumOfWords);
+  Write('В�его �лов в тек�те:        ', NumOfWords);
   GotoXY(2,14);
-  Write('‚ᥣ® ¯à¥¤«®¦¥­¨© ¢ ⥪áâ¥: ', NumOfConv);
+  Write('В�его предложений в тек�те: ', NumOfConv);
 End;{LOG}
 {---------------------------------------------------------}
 Begin
   ClrScr;
   GotoXY(10,10);
-  Writeln('‚¢¥¤¨â¥ áâà®çªã ¤«ï । ªâ¨à®¢ ­¨ï: ');
+  Writeln('Введите �трочку дл� редактировани�: ');
   ReadLn(s1);
   Testing(s1);
   GotoXY(1,11);

+ 3 - 3
PAS/OLD/EDITOR2.PAS

@@ -65,15 +65,15 @@ Begin
   End;
   Inc(NumOfWords);
   GotoXY(2,13);
-  Write('‚ᥣ® á«®¢ ¢ ⥪áâ¥:        ', NumOfWords);
+  Write('В�его �лов в тек�те:        ', NumOfWords);
   GotoXY(2,14);
-  Write('‚ᥣ® ¯à¥¤«®¦¥­¨© ¢ ⥪áâ¥: ', NumOfConv);
+  Write('В�его предложений в тек�те: ', NumOfConv);
 End;{LOG}
 {---------------------------------------------------------}
 Begin
   ClrScr;
   GotoXY(10,10);
-  Writeln('‚¢¥¤¨â¥ áâà®çªã ¤«ï । ªâ¨à®¢ ­¨ï: ');
+  Writeln('Введите �трочку дл� редактировани�: ');
   ReadLn(s1);
   Testing(s1);
   GotoXY(1,11);

+ 7 - 7
PAS/OLD/HW1.PAS

@@ -6,18 +6,18 @@ var
 Begin
   num := 0;
   sum := 0;
-  Writeln ('�ணࠬ¬  ¤«ï ¯®¤áç¥â  á।­¥£®  à¨ä¬¥â¨ç¥áª®£®');
-  Write ('‚¢¥¤¨â¥ 1 ¤«ï ç¥â­ëå, 2 ¤«ï ­¥ç¥â­ëå ');
+  Writeln ('Программа дл� под�чета �реднего арифметиче�кого');
+  Write ('Введите 1 дл� четных, 2 дл� нечетных ');
   Read (a);
   While (a <> 1) and (a <> 2) do begin
-    Writeln ('‚ë ¤®«¦­ë ¢¢¥á⨠1 ¨«¨ 2');
+    Writeln ('Вы должны вве�ти 1 или 2');
     Read (a);
   end;
      Begin
       if a = 1
        then
         begin
-          Write ('‚¢¥¤¨â¥ ­ âãà «ì­ë¥ ç¨á«®, § ª®­ç¨â¥ ­ã«¥¬ ');
+          Write ('Введите натуральные чи�ло, закончите нулем ');
           Repeat
             Read (a);
             if a <> 0 then
@@ -31,7 +31,7 @@ Begin
           Until a = 0;
         end
        else begin
-        Write ('‚¢¥¤¨â¥ ­ âãà «ì­ë¥ ç¨á«®, § ª®­ç¨â¥ ­ã«¥¬ ');
+        Write ('Введите натуральные чи�ло, закончите нулем ');
           Repeat
             Read (a);
             if a <> 0 then
@@ -46,9 +46,9 @@ Begin
         end;
      end;
    if num <> 0 then
-    Writeln ('‘।­¥¥  à¨ä¬¥â¨ç¥áª®¥ ', sum/num:0:2)
+    Writeln ('Среднее арифметиче�кое ', sum/num:0:2)
   else
-    Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ¯ãáâ , ¨«¨ ­¥ ¢¢¥¤¥­® ç¥â/­¥ç¥â ç¨á¥«');
+    Writeln ('По�ледовательно�ть пу�та, или не введено чет/нечет чи�ел');
   Readln;
   Readln;
 End.

+ 8 - 8
PAS/OLD/HW2.PAS

@@ -6,17 +6,17 @@ var
 Begin
   test := true;
   num := false;
-  Writeln ('�ணࠬ¬  ¤«ï ¯à®¢¥àª¨ ¯®á«¥¤®¢ â¥«ì­®áâ¨');
-  Write ('‚¢¥¤¨â¥ 1 ­  ¯à®¢¥àªã ¯® ç¥â­®áâ¨, 2 ¯® §­ ªã ');
+  Writeln ('Программа дл� проверки по�ледовательно�ти');
+  Write ('Введите 1 на проверку по четно�ти, 2 по знаку ');
   Read (a);
   While (a <> 1) and (a <> 2) do begin
-    Writeln ('‚ë ¤®«¦­ë ¢¢¥á⨠1 ¨«¨ 2');
+    Writeln ('Вы должны вве�ти 1 или 2');
     Read (a);
   end;
      Begin
       if a = 1 then
         begin
-          Write ('‚¢®¤¨â¥ ­ âãà «ì­ë¥ ç¨á« , § ª®­ç¨â¥ ­ã«¥¬ ');
+          Write ('Вводите натуральные чи�ла, закончите нулем ');
           Readln(a);
           b := a;
           if a <> 0 then
@@ -40,7 +40,7 @@ Begin
           end
         end
        else begin
-        Write ('‚¢®¤¨â¥ ­ âãà «ì­ë¥ ç¨á« , § ª®­ç¨â¥ ­ã«¥¬ ');
+        Write ('Вводите натуральные чи�ла, закончите нулем ');
           Readln(a);
           b := a;
           if a <> 0 then
@@ -64,13 +64,13 @@ Begin
           end;
         end;
      end;
-  if num = false then Write('�ë«® ¢¢¥¤¥­® ­¥¤®áâ â®ç­® ç¨á¥«')
+  if num = false then Write('Было введено недо�таточно чи�ел')
    else
    begin
     if test = true then
-      Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ¢¥à­  ')
+      Writeln ('По�ледовательно�ть верна ')
     else
-      Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ­¥ ¢¥à­  ');
+      Writeln ('По�ледовательно�ть не верна ');
    end;
   readln;
   Readln;

+ 4 - 4
PAS/OLD/HW21.PAS

@@ -6,7 +6,7 @@ var
 Begin
   test := true;
   num := false;
-          Write ('‚¢®¤¨â¥ ­ âãà «ì­ë¥ ç¨á« , § ª®­ç¨â¥ ­ã«¥¬ ');
+          Write ('Вводите натуральные чи�ла, закончите нулем ');
           Readln(a);
           b := a;
           if a <> 0 then
@@ -28,13 +28,13 @@ Begin
               end;
             Until a = 0;
           end;
-  if num = false then Write('�ë«® ¢¢¥¤¥­® ­¥¤®áâ â®ç­® ç¨á¥«')
+  if num = false then Write('Было введено недо�таточно чи�ел')
    else
    begin
     if test = true then
-      Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ¢¥à­  ')
+      Writeln ('По�ледовательно�ть верна ')
     else
-      Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ­¥ ¢¥à­  ');
+      Writeln ('По�ледовательно�ть не верна ');
    end;
   readln;
   Readln;

+ 4 - 4
PAS/OLD/HW22.PAS

@@ -6,7 +6,7 @@ var
 Begin
   test := true;
   num := false;
-        Write ('‚¢®¤¨â¥ ­ âãà «ì­ë¥ ç¨á« , § ª®­ç¨â¥ ­ã«¥¬ ');
+        Write ('Вводите натуральные чи�ла, закончите нулем ');
           Readln(a);
           b := a;
           if a <> 0 then
@@ -29,13 +29,13 @@ Begin
               end;
             Until a = 0;
           end;
-  if num = false then Write('�ë«® ¢¢¥¤¥­® ­¥¤®áâ â®ç­® ç¨á¥«')
+  if num = false then Write('Было введено недо�таточно чи�ел')
    else
    begin
     if test = true then
-      Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ¢¥à­  ')
+      Writeln ('По�ледовательно�ть верна ')
     else
-      Writeln ('�®á«¥¤®¢ â¥«ì­®áâì ­¥ ¢¥à­  ');
+      Writeln ('По�ледовательно�ть не верна ');
    end;
   readln;
   Readln;

+ 1 - 1
PAS/OLD/HW3.PAS

@@ -5,7 +5,7 @@ Procedure DrawTable;
 var x:integer;
 begin
   GotoXY(27,3);
-  Write('’ ¡«¨æ  㬭®¦¥­¨ï ¤® 15 ');
+  Write('Таблица умножени� до 15 ');
   for x := 9 to 69 do
     begin
       GotoXY(x, 6);

+ 12 - 12
PAS/OLD/HW31.PAS

@@ -5,17 +5,17 @@ Procedure DrawTable(x:integer);
  var y:integer;
  begin
    GotoXY(28,1);
-   Write('’ ¡«¨æ  㬭®¦¥­¨ï ¤® ',x);
+   Write('Таблица умножени� до ',x);
    for y := 39-x*2 to x*4 + (40-x*2) do
      begin
        GotoXY(y, 14 - x div 2);
-       Write('Í');
+       Write('�');
        GotoXY(y, (15 - x div 2) + x);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(WhereX - 1, WhereY - x - 1);
-   Write('»');
+   Write('â•—');
    For y := 1 to x do
      begin
        GotoXY((37-x*2) + y*4, 13 - x div 2 );
@@ -24,24 +24,24 @@ Procedure DrawTable(x:integer);
    For y := 1 to x do
      begin
        GotoXY((36-x*2), (14 - x div 2) + y);
-       if y < 10 then Write(y,'  º')
+       if y < 10 then Write(y,'  â•‘')
        else
-         Write (y,' º');
+         Write (y,' â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY((41-x*2)+ x*4 , (14 - x div 2) + y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(39-x*2, 14 - x div 2);
-   Write('É');
+   Write('â•”');
  end; {DrawTable}
 Begin
   clrscr;
-  Write('‚¢¥¤¨â¥ ç¨á«® ­  ª®â®à®¥ ¬­®¦¨âì, ¬¥­ì襥 18 ');
+  Write('Введите чи�ло на которое множить, меньшее 18 ');
   Read(a);
   While a > 17 do
     begin
-      Writeln('ˆ§¢¨­¨â¥, ¢ë ¬®¦¥â¥ ¢¢¥á⨠⮫쪮 ç¨á«®, ¬¥­ì襥 18 ');
+      Writeln('Извините, вы можете вве�ти только чи�ло, меньшее 18 ');
       Read(a)
     end;
   clrscr;

+ 1 - 1
PAS/OLD/KEYCODE.PAS

@@ -3,7 +3,7 @@ Var
   c: Char;
   w,w1: Word;
 Begin
-  WriteLn('� ¦¨¬ ©â¥ ª­®¯ª¨, ª®­¥æ 2 à §  Esc');
+  WriteLn('�ажимайте кнопки, конец 2 раза Esc');
   repeat
    w1 := w;
    c:=readkey;

+ 12 - 12
PAS/OLD/LINE.PAS

@@ -61,19 +61,19 @@ begin
                    if u then
                      begin
                        GotoXY(WhereX-1,WhereY);
-                       Write('É');
+                       Write('â•”');
                        a[WhereX-1,WhereY] := true;
                        u := false;
                      end;
                    if d then
                      begin
                        GotoXY(WhereX-1,WhereY);
-                       Write('È');
+                       Write('╚');
                        a[WhereX-1,WhereY] := true;
                        d := false;
                      end;
                      if a[WhereX,WhereY] then ext;
-                     Write('Í');
+                     Write('�');
                      a[WhereX-1,WhereY] := true;
                      l := false;
                      r := true;
@@ -84,20 +84,20 @@ begin
                      if u then
                        begin
                          GotoXY(WhereX-1,WhereY);
-                         Write('»');
+                         Write('â•—');
                          a[WhereX-1,WhereY] := true;
                          u := false
                        end;
                      if d then
                        begin
                          GotoXY(WhereX-1,WhereY);
-                         Write('¼');
+                         Write('�');
                          a[WhereX-1,WhereY] := true;
                          d := false
                        end;
                        if a[WhereX-2,WhereY] then ext;
                        GotoXY(WhereX - 2, WhereY);
-                       Write('Í');
+                       Write('�');
                        a[WhereX-1,WhereY] := true;
                        r := false;
                        l := true
@@ -110,20 +110,20 @@ begin
                      if l then
                        begin
                          GotoXY(WhereX-1,WhereY);
-                         Write('È');
+                         Write('╚');
                          a[WhereX-1,WhereY] := true;
                          l := false
                        end;
                      if r then
                        begin
                          GotoXY(WhereX-1,WhereY);
-                         Write('¼');
+                         Write('�');
                          a[WhereX-1,WhereY] := true;
                          r := false
                        end;
                        if a[WhereX-1,WhereY-1] then ext;
                        GotoXY(WhereX - 1, WhereY - 1);
-                       Write('º');
+                       Write('â•‘');
                        a[WhereX-1,WhereY] := true;
                        d := false;
                        u := true
@@ -136,20 +136,20 @@ begin
                      if l then
                        begin
                          GotoXY(WhereX-1,WhereY);
-                         Write('É');
+                         Write('â•”');
                          a[WhereX-1,WhereY] := true;
                          l := false
                        end;
                      if r then
                        begin
                          GotoXY(WhereX-1,WhereY);
-                         Write('»');
+                         Write('â•—');
                          a[WhereX-1,WhereY] := true;
                          r := false
                        end;
                        if a[WhereX-1,WhereY+1] then ext;
                        GotoXY(WhereX-1,WhereY + 1);
-                       Write('º');
+                       Write('â•‘');
                        a[WhereX-1,WhereY] := true;
                        u := false;
                        d := true;

+ 12 - 12
PAS/OLD/LINE2.PAS

@@ -89,7 +89,7 @@ begin
             77 : case dir of
                    1 : begin
                          if a[whereX,WhereY] > 0 then ext;
-                         Write('»');
+                         Write('â•—');
                          Num := num + 1;
                          a[WhereX-1,WhereY] := Num;
                          dir := 2
@@ -97,7 +97,7 @@ begin
                    2 : begin
                          if a[whereX-1,WhereY+1] > 0 then ext;
                          GotoXY(WhereX-1,WhereY+1);
-                         Write('¼');
+                         Write('�');
                          Num := num + 1;
                          a[WhereX-1,WhereY] := Num;
                          dir := 3;
@@ -105,7 +105,7 @@ begin
                    3 : begin
                          if a[whereX-2,WhereY] > 0 then ext;
                          GotoXY(WhereX-2,WhereY);
-                         Write('È');
+                         Write('╚');
                          Num := num + 1;
                          a[WhereX-1,WhereY] := num;
                          Dir := 4
@@ -113,7 +113,7 @@ begin
                    4 : begin
                          if a[whereX-1,WhereY-1] > 0 then ext;
                          GotoXY(WhereX-1,WhereY-1);
-                         Write('É');
+                         Write('â•”');
                          Num := num + 1;
                          a[WhereX-1,WhereY] := Num;
                          Dir := 1
@@ -122,7 +122,7 @@ begin
             75 : case dir of
                    1 : begin
                          if a[whereX,WhereY] > 0 then ext;
-                         Write('¼');
+                         Write('�');
                          num := num +1;
                          a[WhereX-1,WhereY] := Num ;
                          dir := 4
@@ -130,7 +130,7 @@ begin
                    2 : begin
                          if a[whereX-1,WhereY+1] > 0 then ext;
                          GotoXY(WhereX-1,WhereY + 1);
-                         Write('È');
+                         Write('╚');
                          Num := num + 1;
                          a[WhereX-1,WhereY] := Num;
                          dir := 1;
@@ -138,7 +138,7 @@ begin
                    3 : begin
                          if a[whereX-2,WhereY] > 0 then ext;
                          GotoXY(WhereX-2,WhereY);
-                         Write('É');
+                         Write('â•”');
                          num := num + 1;
                          a[WhereX-1,WhereY] := num;
                          Dir := 2
@@ -146,7 +146,7 @@ begin
                    4 : begin
                          if a[whereX-1,WhereY-1] > 0 then ext;
                          GotoXY(WhereX-1,WhereY - 1);
-                         Write('»');
+                         Write('â•—');
                          num := num + 1;
                          a[WhereX-1,WhereY] := num ;
                          Dir := 3
@@ -165,7 +165,7 @@ begin
               else
                begin
                   if a[WhereX,WhereY] < 0 then b := b + abs(a[WhereX,WhereY]);
-                  Write('Í');
+                  Write('�');
                   Num := num + 1;
                   a[WhereX-1,WhereY] := Num;
                   if b > 0 then b := b - 1;
@@ -177,7 +177,7 @@ begin
                 begin
                   if a[WhereX-1,WhereY+1] < 0 then b := b + abs(a[WhereX-1,WhereY+1]);
                   GotoXY(WhereX-1,WhereY+1);
-                  Write('º');
+                  Write('â•‘');
                   Num := num + 1;
                   a[WhereX-1,WhereY] := Num;
                   if b > 0 then b := b - 1;
@@ -189,7 +189,7 @@ begin
                 begin
                   if a[WhereX-2,WhereY] < 0 then b :=b+abs(a[WhereX-2,WhereY]);
                   GotoXY(Wherex-2,WhereY);
-                  Write('Í');
+                  Write('�');
                   Num := Num + 1;
                   a[WhereX-1,WhereY] := Num ;
                   if b > 0 then b := b - 1;
@@ -202,7 +202,7 @@ begin
                   if a[WhereX-1,WhereY-1] < 0 then
                     b := b + abs(a[WhereX-1,WhereY-1]);
                   GotoXY(WhereX-1,WhereY-1);
-                  Write('º');
+                  Write('â•‘');
                   Num := Num +1;
                   a[WhereX-1,WhereY] := Num ;
                   if b > 0 then b := b - 1;

+ 30 - 30
PAS/OLD/LINE3.PAS

@@ -48,16 +48,16 @@ begin
   TextMode(CO80);
   SetCursorSize(16*256);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   {GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');}
+  Write('2 :  У�тановить Клавиши');}
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
@@ -81,12 +81,12 @@ begin
   GotoXY(WhereX-18,WhereY);
   Write('Y           : ',bg2-2);
   GotoXY(2,9);
-  Write('„«¨­  §¬¥ï  : ', col.score);
+  Write('Длина зме�  : ', col.score);
   GotoXY(2,11);
-  Write('—¨á«® 室®¢ : ',num);
+  Write('Чи�ло ходов : ',num);
   GotoXY(7,13);
   TextColor(LightBlue);
-  Write('‹ãç訩 ');
+  Write('Лучший ');
   GotoXY(2,15);
   TextColor(LightGreen);
   Write(max.name, Max.score:(17 - length(max.name)));
@@ -128,13 +128,13 @@ begin
       GotoXY(30,10);
       max.score := col.score;
       TextColor(cyan);
-      Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+      Write('П О З Д Р � В Л Я Ю');
       GotoXY(30,12);
       TextColor(Blue);
-      Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+      Write('Вы по�тавили рекорд');
       GotoXY(12,17);
       TextColor(Yellow);
-      Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 20 ᨬ¢®«®¢ ');
+      Write('Введите �вое им� до 20 �имволов ');
       TextColor(lightgreen);
       Read(max.name);
       TextColor(7);
@@ -196,24 +196,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -286,7 +286,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              dir := 2
@@ -305,7 +305,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -325,7 +325,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -345,7 +345,7 @@ begin
                                   cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -366,7 +366,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num ;
                              dir := 4
@@ -385,7 +385,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
                              a[WhereX-1,WhereY].n := Num;
@@ -405,7 +405,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -425,7 +425,7 @@ begin
                                  cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := num ;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -455,7 +455,7 @@ begin
                           TextColor(a[WhereX,WhereY].c);
                           cl := a[WhereX,WhereY].c;
                         end;
-                      Write('Í');
+                      Write('�');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-2,WhereY].c;
@@ -477,7 +477,7 @@ begin
                           cl := a[WhereX-1,WhereY + 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -499,7 +499,7 @@ begin
                           cl := a[WhereX-2,WhereY].c;
                         end;
                       GotoXY(Wherex-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -521,7 +521,7 @@ begin
                           cl := a[WhereX-1,WhereY - 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;

+ 32 - 32
PAS/OLD/LINE31.PAS

@@ -38,23 +38,23 @@ begin
   ClrScr;
   TextMode(CO80);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');
+  Write('2 :  У�тановить Клавиши');
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
            end;
     '2' : begin
             GotoXY(12,20);
-            Write('‹¥¢® ');
+            Write('Лево ');
             c := readkey;
             if c = #0 then
               begin
@@ -67,7 +67,7 @@ begin
                 Write(lt);
               end;
             GotoXY(12,21);
-            Write('�à ¢® ');
+            Write('Право ');
             c := readkey;
             if c = #0 then
               begin
@@ -95,11 +95,11 @@ begin
   GotoXY(WhereX-18,WhereY);
   Write('Y           : ',bg2);
   GotoXY(2,9);
-  Write('„«¨­  §¬¥ï  : ', col.score);
+  Write('Длина зме�  : ', col.score);
   GotoXY(2,11);
-  Write('—¨á«® 室®¢ : ',num);
+  Write('Чи�ло ходов : ',num);
   GotoXY(6,13);
-  Write('‹ãç訩 ');
+  Write('Лучший ');
   GotoXY(2,14);
   Write(max.name);
   GotoXY(16,14);
@@ -142,13 +142,13 @@ begin
       GotoXY(30,10);
       max.score := col.score;
       TextColor(cyan);
-      Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+      Write('П О З Д Р � В Л Я Ю');
       GotoXY(30,12);
       TextColor(Blue);
-      Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+      Write('Вы по�тавили рекорд');
       GotoXY(12,17);
       TextColor(Yellow);
-      Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 13 ᨬ¢®«®¢ ');
+      Write('Введите �вое им� до 13 �имволов ');
       TextColor(lightgreen);
       Read(max.name);
       TextColor(7);
@@ -211,24 +211,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -299,7 +299,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              dir := 2
@@ -318,7 +318,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -338,7 +338,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -358,7 +358,7 @@ begin
                                   cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -379,7 +379,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num ;
                              dir := 4
@@ -398,7 +398,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
                              a[WhereX-1,WhereY].n := Num;
@@ -418,7 +418,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -438,7 +438,7 @@ begin
                                  cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := num ;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -467,7 +467,7 @@ begin
                           TextColor(a[WhereX,WhereY].c);
                           cl := a[WhereX,WhereY].c;
                         end;
-                      Write('Í');
+                      Write('�');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-2,WhereY].c;
@@ -489,7 +489,7 @@ begin
                           cl := a[WhereX-1,WhereY + 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -511,7 +511,7 @@ begin
                           cl := a[WhereX-2,WhereY].c;
                         end;
                       GotoXY(Wherex-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -533,7 +533,7 @@ begin
                           cl := a[WhereX-1,WhereY - 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;

+ 30 - 30
PAS/OLD/LINE32.PAS

@@ -45,13 +45,13 @@ Begin
       end;
     max.score[i] := col.score[1];
     TextColor(cyan);
-    Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+    Write('П О З Д Р � В Л Я Ю');
     GotoXY(30,12);
     TextColor(Blue);
-    Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+    Write('Вы по�тавили рекорд');
     GotoXY(12,17);
     TextColor(Yellow);
-    Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 20 ᨬ¢®«®¢ ');
+    Write('Введите �вое им� до 20 �имволов ');
     TextColor(lightgreen);
     Read(max.name[i]);
     TextColor(7);
@@ -81,16 +81,16 @@ begin
   TextMode(CO80);
   SetCursorSize(16*256);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   {GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');}
+  Write('2 :  У�тановить Клавиши');}
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
@@ -114,12 +114,12 @@ begin
   GotoXY(WhereX-18,WhereY);
   Write('Y           : ',bg2-2);
   GotoXY(2,9);
-  Write('„«¨­  §¬¥ï  : ', col.score[1]);
+  Write('Длина зме�  : ', col.score[1]);
   GotoXY(2,11);
-  Write('—¨á«® 室®¢ : ',num);
+  Write('Чи�ло ходов : ',num);
   GotoXY(7,13);
   TextColor(LightBlue);
-  Write('‹ãç訩 ');
+  Write('Лучший ');
   GotoXY(2,15);
   TextColor(LightGreen);
   for n := 1 to 10 do begin
@@ -221,24 +221,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -311,7 +311,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              dir := 2
@@ -330,7 +330,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -350,7 +350,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -370,7 +370,7 @@ begin
                                   cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -391,7 +391,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num ;
                              dir := 4
@@ -410,7 +410,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
                              a[WhereX-1,WhereY].n := Num;
@@ -430,7 +430,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -450,7 +450,7 @@ begin
                                  cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := num ;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -480,7 +480,7 @@ begin
                           TextColor(a[WhereX,WhereY].c);
                           cl := a[WhereX,WhereY].c;
                         end;
-                      Write('Í');
+                      Write('�');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-2,WhereY].c;
@@ -502,7 +502,7 @@ begin
                           cl := a[WhereX-1,WhereY + 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -524,7 +524,7 @@ begin
                           cl := a[WhereX-2,WhereY].c;
                         end;
                       GotoXY(Wherex-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -546,7 +546,7 @@ begin
                           cl := a[WhereX-1,WhereY - 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;

+ 28 - 28
PAS/OLD/MISHA.PAS

@@ -13,20 +13,20 @@ Var
 
 Procedure SetCursorSize( c_Start, c_End : Byte );
                            { 0 .. 32
-                           “áâ ­ ¢«¨¢ ¥â ä®à¬ã ªãàá®à }
+                           У�танавливает форму кур�ора}
       var
         Regs : Registers;
 
       BEGIN
         with Regs do begin
-          AH := $01;          {äã­ªæ¨ï ä®à¬ë ªãàá®à }
-          CH := c_Start;      {áâ à⮢ ï «¨­¨ï ªãàá®à }
-          CL := c_End;        {ª®­¥ç­ ï «¨­¨ï ªãàá®à }
+          AH := $01;          {функци� формы кур�ора}
+          CH := c_Start;      {�тартова� лини� кур�ора}
+          CL := c_End;        {конечна� лини� кур�ора}
         end;
-        Intr( $10, Regs )     {¢ë§®¢ ¯à¥à뢠­¨ï 10H �‘‚‚}
+        Intr( $10, Regs )     {вызов прерывани� 10H БСВВ}
       End;
 
-Procedure SetNoCursor;     {�¥¢¨¤¨¬ë© ªãàá®à }
+Procedure SetNoCursor;     {�евидимый кур�ора}
 
       BEGIN
         SetCursorSize( 32, 0 )
@@ -54,7 +54,7 @@ begin
   SetTextStyle(1,0,5);
   OutText('Worms, Worms, Worms');
   SettextStyle(0,0,2);
-  OutTextXY(getmaxx div 3 ,getmaxy div 2,'� ç­¥¬ !!!');
+  OutTextXY(getmaxx div 3 ,getmaxy div 2,'�ачнем !!!');
   readLn;
   SetColor(0);
   SetBkColor(0);
@@ -62,12 +62,12 @@ begin
   ClrScr;
   SetNoCursor;
   GotoXy(15,5);
-  Write('‚¢¥¤¨â¥ ᪮à®áâì ®â 1-20 (祬 ¡®«ìè¥ ,⥬ ¬¥¤«¥­­¥¥): ');
+  Write('Введите �коро�ть от 1-20 (чем больше ,тем медленнее): ');
   ReadLn(speed);
   if speed > 20 then
   begin
     GoToXY(20,6);
-    Write('‘ª®à®áâì ᫨誮¬ ¬ «¥­ìª ï, ¢¢¥¤¨â¥ ¥é¥ à §: ');
+    Write('Скоро�ть �лишком маленька�, введите еще раз: ');
     Read(speed);
   end;
   ClrScr;
@@ -118,11 +118,11 @@ begin
   GotoXY(xb,yb);
   Write('[');
   GotoXY(51,2);
-  Write('„«¨­  ç¥à¢ï = ',l);
+  Write('Длина черв� = ',l);
   GotoXY(51,4);
-  Write('‘ª®à®áâì ç¥à¢ï = ',speed);
+  Write('Скоро�ть черв� = ',speed);
   GoToXY(51,6);
-  Write('Š®«-¢® ®çª®¢ = ',score);
+  Write('Кол-во очков = ',score);
   repeat
     ch:=readkey;
     ch:=readkey;
@@ -156,19 +156,19 @@ begin
         f:=l;
         score:=score+5;
         GotoXY(51,2);
-        Write('„«¨­  ç¥à¢ï = ',l);
+        Write('Длина черв� = ',l);
         if  f in [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200]   then speed:=Speed+1;
          {(l=10) or (l=20) or (l=30) or (l=40) or (l=50) or (l=60) or (l=70) or (l=80)}
         if speed=21 then
         begin
           ClrScr;
           Gotoxy(40,12);
-          Write('‚› ‚›ˆƒ�€‹ˆ');
+          Write('ВЫ ВЫИГР�ЛИ');
         end;
         GotoXY(51,4);
-        Write('‘ª®à®áâì ç¥à¢ï = ',speed);
+        Write('Скоро�ть черв� = ',speed);
         GoToXY(51,6);
-        Write('Š®«-¢® ®çª®¢ = ',score);
+        Write('Кол-во очков = ',score);
         repeat
         c:=random(16);
         TextColor(c);
@@ -224,19 +224,19 @@ begin
         f:=l;
         score:=score+5;
         GotoXY(51,2);
-        Write('„«¨­  ç¥à¢ï = ',l);
+        Write('Длина черв� = ',l);
         if  f in [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200]
         {(l=10) or (l=20) or (l=30) or (l=40) or (l=50) or (l=60) or (l=70) or (l=80)} then speed:=Speed+1;
         if speed=21 then
         begin
           ClrScr;
           Gotoxy(40,12);
-          Write('‚› ‚›ˆƒ�€‹ˆ');
+          Write('ВЫ ВЫИГР�ЛИ');
         end;
         GotoXY(51,4);
-        Write('‘ª®à®áâì ç¥à¢ï = ',speed);
+        Write('Скоро�ть черв� = ',speed);
         GoToXY(51,6);
-        Write('Š®«-¢® ®çª®¢ = ',score);
+        Write('Кол-во очков = ',score);
         repeat
         c:=random(16);
         TextColor(c);
@@ -293,19 +293,19 @@ begin
         f:=l;
         score:=score+5;
         GotoXY(51,2);
-        Write('„«¨­  ç¥à¢ï = ',l);
+        Write('Длина черв� = ',l);
         if f in [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200]
         {(l=10) or (l=20) or (l=30) or (l=40) or (l=50) or (l=60) or (l=70) or (l=80)} then speed:=Speed+1;
         if speed=21 then
         begin
           ClrScr;
           Gotoxy(40,12);
-          Write('‚› ‚›ˆƒ�€‹ˆ');
+          Write('ВЫ ВЫИГР�ЛИ');
         end;
         GotoXY(51,4);
-        Write('‘ª®à®áâì ç¥à¢ï = ',speed);
+        Write('Скоро�ть черв� = ',speed);
         GoToXY(51,6);
-        Write('Š®«-¢® ®çª®¢ = ',score);
+        Write('Кол-во очков = ',score);
         repeat
         c:=random(16);
         TextColor(c);
@@ -360,19 +360,19 @@ begin
         l:=l+1;
         score:=score+5;
         GotoXY(51,2);
-        Write('„«¨­  ç¥à¢ï = ',l);
+        Write('Длина черв� = ',l);
         if f in [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200]
         {(l=10) or (l=20) or (l=30) or (l=40) or (l=50) or (l=60) or (l=70) or (l=80)} then speed:=Speed+1;
         if speed=21 then
         begin
           ClrScr;
           Gotoxy(40,12);
-          Write('‚› ‚›ˆƒ�€‹ˆ');
+          Write('ВЫ ВЫИГР�ЛИ');
         end;
         GotoXY(51,4);
-        Write('‘ª®à®áâì ç¥à¢ï = ',speed);
+        Write('Скоро�ть черв� = ',speed);
         GoToXY(51,6);
-        Write('Š®«-¢® ®çª®¢ = ',score);
+        Write('Кол-во очков = ',score);
         repeat
         c:=random(16);
         TextColor(c);

+ 30 - 30
PAS/OLD/PITON.PAS

@@ -46,13 +46,13 @@ Begin
       end;
     max.score[i] := col.score[1];
     TextColor(cyan);
-    Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+    Write('П О З Д Р � В Л Я Ю');
     GotoXY(30,12);
     TextColor(Blue);
-    Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+    Write('Вы по�тавили рекорд');
     GotoXY(12,17);
     TextColor(Yellow);
-    Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 20 ᨬ¢®«®¢ ');
+    Write('Введите �вое им� до 20 �имволов ');
     TextColor(lightgreen);
     Readln(max.name[i]);
     TextColor(7);
@@ -82,16 +82,16 @@ begin
   TextMode(CO80);
   SetCursorSize(16*256);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   {GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');}
+  Write('2 :  У�тановить Клавиши');}
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
@@ -115,12 +115,12 @@ begin
   GotoXY(WhereX-18,WhereY);
   Write('Y           : ',bg2-2);
   GotoXY(2,7);
-  Write('„«¨­  §¬¥ï  : ', col.score[1]);
+  Write('Длина зме�  : ', col.score[1]);
   GotoXY(2,9);
-  Write('—¨á«® 室®¢ : ',num);
+  Write('Чи�ло ходов : ',num);
   GotoXY(7,12);
   TextColor(LightBlue);
-  Write('‹ãç訥 ');
+  Write('Лучшие ');
   TextColor(LightGreen);
   for n := 1 to 10 do begin
     GotoXY(2,13 + n);
@@ -225,24 +225,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -316,7 +316,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              dir := 2
@@ -335,7 +335,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -355,7 +355,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -375,7 +375,7 @@ begin
                                   cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -396,7 +396,7 @@ begin
                                  TextColor(a[WhereX,WhereY].c);
                                  cl := a[WhereX,WhereY].c;
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY].n := Num ;
                              dir := 4
@@ -415,7 +415,7 @@ begin
                                  cl := a[WhereX-1,WhereY + 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
                              a[WhereX-1,WhereY].n := Num;
@@ -435,7 +435,7 @@ begin
                                  cl := a[WhereX-2,WhereY].c;
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY].n := num;
                              a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -455,7 +455,7 @@ begin
                                  cl := a[WhereX-1,WhereY - 1].c;
                                end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY].n := num ;
                              a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;
@@ -486,7 +486,7 @@ begin
                           TextColor(a[WhereX,WhereY].c);
                           cl := a[WhereX,WhereY].c;
                         end;
-                      Write('Í');
+                      Write('�');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-2,WhereY].c;
@@ -508,7 +508,7 @@ begin
                           cl := a[WhereX-1,WhereY + 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       inc(num);
                       a[WhereX-1,WhereY].n := Num;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY-1].c;
@@ -530,7 +530,7 @@ begin
                           cl := a[WhereX-2,WhereY].c;
                         end;
                       GotoXY(Wherex-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX,WhereY].c;
@@ -552,7 +552,7 @@ begin
                           cl := a[WhereX-1,WhereY - 1].c;
                         end;
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       inc(Num);
                       a[WhereX-1,WhereY].n := Num ;
                       a[WhereX-1,WhereY].c := a[WhereX-1,WhereY+1].c;

+ 30 - 30
PAS/OLD/PITON1.PAS

@@ -87,13 +87,13 @@ Begin
       end;
     max.score[i] := col;
     TextColor(cyan);
-    Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+    Write('П О З Д Р � В Л Я Ю');
     GotoXY(30,12);
     TextColor(Blue);
-    Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+    Write('Вы по�тавили рекорд');
     GotoXY(12,17);
     TextColor(Yellow);
-    Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 20 ᨬ¢®«®¢ ');
+    Write('Введите �вое им� до 20 �имволов ');
     TextColor(lightgreen);
     Readln(max.name[i]);
     TextColor(7);
@@ -123,16 +123,16 @@ begin
   TextMode(CO80);
   SetCursorSize(16*256);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   {GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');}
+  Write('2 :  У�тановить Клавиши');}
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
@@ -184,12 +184,12 @@ begin
   GotoXY(1,5);
   Write('Y           : ');
   GotoXY(1,7);
-  Write('„«¨­  §¬¥ï  : ');
+  Write('Длина зме�  : ');
   GotoXY(1,9);
-  Write('—¨á«® 室®¢ : ');
+  Write('Чи�ло ходов : ');
   GotoXY(7,12);
   TextColor(LightBlue);
-  Write('‹ãç訥 ');
+  Write('Лучшие ');
   TextColor(LightGreen);
   for n := 1 to 10 do begin
     GotoXY(2,13 + n);
@@ -299,24 +299,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -384,7 +384,7 @@ begin
                                  inc(col,-a[whereX,WhereY]);
                                  TextColor(now);
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              dir := 2;
@@ -400,7 +400,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              dir := 3;
@@ -416,7 +416,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY] := num;
                              if b > 0 then dec(b);
@@ -432,7 +432,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              if b > 0 then dec(b);
@@ -449,7 +449,7 @@ begin
                                  inc(col, -a[WhereX,WhereY]);
                                  TextColor(now);
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY] := Num ;
                              if b > 0 then dec(b);
@@ -464,7 +464,7 @@ begin
                                  inc(col, -a[WhereX-1,WhereY+1]);                               TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              if b > 0 then dec(b);
@@ -480,7 +480,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY] := num;
                              if b > 0 then dec(b);
@@ -496,7 +496,7 @@ begin
                                  TextColor(now);
                                 end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY] := num ;
                              if b > 0 then dec(b);
@@ -523,7 +523,7 @@ begin
                           inc(col,-a[whereX,WhereY]);
                           TextColor(now);
                         end;
-                      Write('Í');
+                      Write('�');
                       inc(num);
                       a[WhereX-1,WhereY] := Num;
                       if b > 0 then b := b - 1;
@@ -540,7 +540,7 @@ begin
                           TextColor(now);
                         end;
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       inc(num);
                       a[WhereX-1,WhereY] := Num;
                       if b > 0 then b := b - 1;
@@ -557,7 +557,7 @@ begin
                           TextColor(now);
                         end;
                       GotoXY(Wherex-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       inc(Num);
                       a[WhereX-1,WhereY] := Num ;
                       if b > 0 then dec(b);
@@ -574,7 +574,7 @@ begin
                           TextColor(now);
                         end;
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       inc(Num);
                       a[WhereX-1,WhereY] := Num ;
                       if b > 0 then dec(b);

+ 30 - 30
PAS/OLD/PITON3.PAS

@@ -85,13 +85,13 @@ Begin
       end;
     max.score[i] := col.score[1];
     TextColor(cyan);
-    Write('� Ž ‡ „ � € ‚ ‹ Ÿ ž');
+    Write('П О З Д Р � В Л Я Ю');
     GotoXY(30,12);
     TextColor(Blue);
-    Write('‚ë ¯®áâ ¢¨«¨ ४®à¤');
+    Write('Вы по�тавили рекорд');
     GotoXY(12,17);
     TextColor(Yellow);
-    Write('‚¢¥¤¨â¥ ᢮¥ ¨¬ï ¤® 20 ᨬ¢®«®¢ ');
+    Write('Введите �вое им� до 20 �имволов ');
     TextColor(lightgreen);
     Readln(max.name[i]);
     TextColor(7);
@@ -121,16 +121,16 @@ begin
   TextMode(CO80);
   SetCursorSize(16*256);
   GotoXY(10, 5);
-  Write('1 :  ‘ª®à®áâì');
+  Write('1 :  Скоро�ть');
   {GotoXY(10, 10);
-  Write('2 :  “áâ ­®¢¨âì Š« ¢¨è¨');}
+  Write('2 :  У�тановить Клавиши');}
   GotoXY(10, 15);
-  Write('3 :  ‡ ¢¥àè¨âì ­ áâநª¨');
+  Write('3 :  Завершить на�троики');
   GotoXY(1,1);
   Case readkey of
     '1' : begin
             GotoXY(12,20);
-            Write('‚¢¥¤¨â¥ ᪮à®áâì 1..10 (5) ');
+            Write('Введите �коро�ть 1..10 (5) ');
             repeat
              Readln(max.sp);
             until (max.sp > 0) and (max.sp < 11);
@@ -170,12 +170,12 @@ begin
   GotoXY(1,5);
   Write('Y           : ');
   GotoXY(1,7);
-  Write('„«¨­  §¬¥ï  : ');
+  Write('Длина зме�  : ');
   GotoXY(1,9);
-  Write('—¨á«® 室®¢ : ');
+  Write('Чи�ло ходов : ');
   GotoXY(7,12);
   TextColor(LightBlue);
-  Write('‹ãç訥 ');
+  Write('Лучшие ');
   TextColor(LightGreen);
   for n := 1 to 10 do begin
     GotoXY(2,13 + n);
@@ -283,24 +283,24 @@ Procedure DrawTable;
    for y := 20 to 79 do
      begin
        GotoXY(y, 3);
-       Write('Í');
+       Write('�');
        GotoXY(y, 25);
-       Write('Í');
+       Write('�');
      end;
-   Write('¼');
+   Write('�');
    GotoXY(80, 2);
-   Write('»');
+   Write('â•—');
    For y := 3 to 23 do
      begin
        GotoXY(20, y);
-       Write ('º');
+       Write ('â•‘');
        GotoXY(WhereX-1, WhereY + 1);
-       Write('È');
+       Write('╚');
        GotoXY(80, y);
-         Write ('º')
+         Write ('â•‘')
       end;
    GotoXY(20,2);
-   Write('É');
+   Write('â•”');
 end; {DrawTable}
 {-------------------------------------------------------}
 Procedure Game;
@@ -368,7 +368,7 @@ begin
                                  inc(col.score[1],-a[whereX,WhereY]);
                                  TextColor(now);
                                end;
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              dir := 2;
@@ -384,7 +384,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY+1);
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              dir := 3;
@@ -400,7 +400,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY] := num;
                              if b > 0 then dec(b);
@@ -416,7 +416,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY-1);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              if b > 0 then dec(b);
@@ -433,7 +433,7 @@ begin
                                  inc(col.score[1], -a[WhereX,WhereY]);
                                  TextColor(now);
                                end;
-                             Write('¼');
+                             Write('�');
                              inc(num);
                              a[WhereX-1,WhereY] := Num ;
                              if b > 0 then dec(b);
@@ -449,7 +449,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-1,WhereY + 1);
-                             Write('È');
+                             Write('╚');
                              inc(num);
                              a[WhereX-1,WhereY] := Num;
                              if b > 0 then dec(b);
@@ -465,7 +465,7 @@ begin
                                  TextColor(now);
                                end;
                              GotoXY(WhereX-2,WhereY);
-                             Write('É');
+                             Write('â•”');
                              inc(num);
                              a[WhereX-1,WhereY] := num;
                              if b > 0 then dec(b);
@@ -481,7 +481,7 @@ begin
                                  TextColor(now);
                                 end;
                              GotoXY(WhereX-1,WhereY - 1);
-                             Write('»');
+                             Write('â•—');
                              inc(num);
                              a[WhereX-1,WhereY] := num ;
                              if b > 0 then dec(b);
@@ -510,7 +510,7 @@ begin
                         end;
                       Write('');
                       GotoXY(WhereX-2,WhereY);
-                      Write('Í');
+                      Write('�');
                       GotoXY(WhereX+1,WhereY);
                       inc(num);
                       a[WhereX-1,WhereY] := Num;
@@ -530,7 +530,7 @@ begin
                       GotoXY(WhereX-1,WhereY+1);
                       Write('');
                       GotoXY(WhereX-1,WhereY-1);
-                      Write('º');
+                      Write('â•‘');
                       GotoXY(WhereX,WhereY+1);
                       inc(num);
                       a[WhereX-1,WhereY] := Num;
@@ -549,7 +549,7 @@ begin
                         end;
                       GotoXY(WhereX-2,WhereY);
                       Write('');
-                      Write('Í');
+                      Write('�');
                       GotoXY(WhereX-1,WhereY);
                       inc(Num);
                       a[WhereX-1,WhereY] := Num ;
@@ -569,7 +569,7 @@ begin
                       GotoXY(WhereX-1,WhereY-1);
                       Write('');
                       GotoXY(WhereX-1,WhereY+1);
-                      Write('º');
+                      Write('â•‘');
                       GotoXY(WhereX,WhereY-1);
                       inc(Num);
                       a[WhereX-1,WhereY] := Num ;

+ 1 - 1
PAS/OLD/SLIDE.PAS

@@ -11,7 +11,7 @@ Begin
   ClrScr;
   TextColor(7);
   GotoXY(5,8);
-  Write('‚¢¥¤¨â¥ áâபã ');
+  Write('Введите �троку ');
   Readln(s1);
   len := length(s1) +1;
   ClrScr;

+ 15 - 15
PAS/OLD/TABLEE.PAS

@@ -85,19 +85,19 @@ Procedure DrawTable(l,r,t,b: longint);
   Begin
     TextColor(cyan);
     GotoXY(32,2);
-    Write('’ ¡«¨æ  㬭®¦¥­¨ï ');
+    Write('Таблица умножени� ');
     TextColor(LightMagenta);
     For a := 39-((abs(l-r)+1)* round(strin(r*b)/2 ))  to
     (abs(l-r) +1) * strin(r*b) + (38 - (abs(l-r) * round(strin(r*b)/2))) do
       Begin
         GotoXY(a, 14 - (abs(t-b)+1) div 2 );
-        Write('Í');
+        Write('�');
         GotoXY(a, (15-(abs(t-b)+1) div 2 ) + (abs(t-b)+1));
-        Write('Í');
+        Write('�');
       end;
-    Write('¼');
+    Write('�');
     GotoXY(WhereX-1, WhereY - 1 - (abs(t-b)+1));
-    Write('»');
+    Write('â•—');
     TextColor(green);
     For a := l to r do
       begin
@@ -113,45 +113,45 @@ Procedure DrawTable(l,r,t,b: longint);
             TextColor(green);
             Write (a);
             TextColor(13);
-            Write('  º');
+            Write('  â•‘');
           end
         else begin
           TextColor(green);
           Write(a);
           TextColor(13);
-          Write(' º');
+          Write(' â•‘');
         end;
         GotoXY(WhereX-1, WhereY+1);
-        Write('È');
+        Write('╚');
         if (strin(r*b) mod 2) = 0 then
           begin
             GotoXY((41-((abs(l-r)+1)*round(strin(r*b)/2)))+(abs(l-r)+1)*
             strin(r*b),(14 - (abs(t-b)+1) div 2) + a - t +1);
-            Write('º');
+            Write('â•‘');
           end
         else
         begin
           GotoXY((41-((abs(l-r)+1)*round(strin(r*b)/2)))+(abs(l-r)+1)*
           strin(r*b) + 1,(14 - (abs(t-b)+1) div 2) + a - t +1);
-          Write('º');
+          Write('â•‘');
         end;
       end;
     GotoXY(39-((abs(l-r)+1)*round(strin(r*b) / 2 )), 14 - (abs(t-b)+1) div 2);
-    Write('É')
+    Write('â•”')
   end; {DrawTable}
 {----------------------------------------------------------}
 Begin
   Clrscr;
   TextMode(CO80);
   TextColor(LightGray);
-  Writeln('‚¢¥¤¨â¥ ç¨á«  ¤® ª®â®àëå áâநâì â ¡«¨æã, à §­¨æ  ¬¥¦¤ã ª®â®à묨 ');
-  Writeln('¬¥­ìè¥ 18 ¨ ¯à®¨§¢¥¤¥­¨¥ ­ ¨¡®«ìè¨å ç¨á¥« ¬¥­ìè¥ 1000 ');
-  Write('¢ ä®à¬ â¥: «¥¢®¥ ¯à ¢®¥ ¢¥àå­¥¥ ­¨¦­¥¥ (1 10 2 15): ');
+  Writeln('Введите чи�ла до которых �троить таблицу, разница между которыми ');
+  Writeln('меньше 18 и произведение наибольших чи�ел меньше 1000 ');
+  Write('в формате: левое правое верхнее нижнее (1 10 2 15): ');
   Read(Left, Right, Top , Bottom);
   While (abs(left-right) > 17) or (abs(top-bottom) > 17) or
   ((abs(left-right) * strin(right*bottom)) > 70 ) do
     begin
-      Write('�®¯à®¡ã©â¥ á­®¢  ');
+      Write('Попробуйте �нова ');
       Read(Left, Right, Top , Bottom);
     end;
   Clrscr;

+ 14 - 14
PAS/OLD/TBLMULT.PAS

@@ -77,18 +77,18 @@ Procedure DrawTable(l,r,t,b:byte);
   Begin
     TextColor(cyan);
     GotoXY(32,2);
-    Write('’ ¡«¨æ  㬭®¦¥­¨ï ');
+    Write('Таблица умножени� ');
     TextColor(LightMagenta);
     For a := 39-((abs(l-r)+1)*2)  to (abs(l-r) +1)*4 + (38 - (abs(l-r) * 2)) do
       Begin
         GotoXY(a, 14 - (abs(t-b)+1) div 2 );
-        Write('Í');
+        Write('�');
         GotoXY(a, (15-(abs(t-b)+1) div 2 ) + (abs(t-b)+1));
-        Write('Í');
+        Write('�');
       end;
-    Write('¼');
+    Write('�');
     GotoXY(WhereX-1, WhereY - 1 - (abs(t-b)+1));
-    Write('»');
+    Write('â•—');
     TextColor(green);
     For a := l to r do
       begin
@@ -103,36 +103,36 @@ Procedure DrawTable(l,r,t,b:byte);
             TextColor(green);
             Write (a);
             TextColor(13);
-            Write('  º');
+            Write('  â•‘');
           end
         else begin
           TextColor(green);
           Write(a);
           TextColor(13);
-          Write(' º');
+          Write(' â•‘');
         end;
         GotoXY(WhereX-1, WhereY+1);
-        Write('È');
+        Write('╚');
         GotoXY((41-(abs(l-r)+1)*2) + (abs(l-r)+1)*4,
         (14 - (abs(t-b)+1) div 2) + a - t +1);
-        Write('º');
+        Write('â•‘');
       end;
     GotoXY(39-((abs(l-r)+1)*2), 14 - (abs(t-b)+1) div 2);
-    Write('É')
+    Write('â•”')
   end; {DrawTable}
 {----------------------------------------------------------}
 Begin
   Clrscr;
   TextMode(CO80);
   TextColor(LightGray);
-  Writeln('‚¢¥¤¨â¥ ç¨á«  ¤® ª®â®àëå áâநâì â ¡«¨æã, à §­¨æ  ¬¥¦¤ã ª®â®à묨 ');
-  Writeln('¬¥­ìè¥ 18 ¨ ¯à®¨§¢¥¤¥­¨¥ ­ ¨¡®«ìè¨å ç¨á¥« ¬¥­ìè¥ 1000 ');
-  Write('¢ ä®à¬ â¥: «¥¢®¥ ¯à ¢®¥ ¢¥àå­¥¥ ­¨¦­¥¥ (1 10 2 15): ');
+  Writeln('Введите чи�ла до которых �троить таблицу, разница между которыми ');
+  Writeln('меньше 18 и произведение наибольших чи�ел меньше 1000 ');
+  Write('в формате: левое правое верхнее нижнее (1 10 2 15): ');
   Read(Left, Right, Top , Bottom);
   While (abs(left-right) > 17) or (abs(top-bottom) > 17) or
   (right*bottom > 1000) do
     begin
-      Write('�®¯à®¡ã©â¥ á­®¢  ');
+      Write('Попробуйте �нова ');
       Read(Left, Right, Top , Bottom);
     end;
   Clrscr;

+ 3 - 3
PAS/PATH.PAS

@@ -45,11 +45,11 @@ Begin
 End;
 Procedure Ok;
 Begin
-  OutTextXY(450,400,'𥐰悟漼 洫早�.');
+  OutTextXY(450,400,'��郋邿�邽 邾郋迠郇郋.');
 End;
 Procedure NotOk;
 Begin
-  OutTextXY(450,400,'𥐰悟漼 郊恢改.');
+  OutTextXY(450,400,'��郋邿�邽 郇迮郅�郱�.');
   ReadKey;
   CloseGraph;
   Halt;
@@ -98,7 +98,7 @@ Begin
 End;
 Begin
   ClrScr;
-  Write('�奶兩� 能格平� �祚垠平剁<<<---');
+  Write('�赲迮迡邽�迮 郈�郋�迮郇� 郱訄郈郋郅郇迮郇邽�<<<---');
   ReadLn(KolFields);
   KolFields:=Round((KolFields/100)*64);
   GD:=Detect;

+ 5 - 5
PAS/Plotting/strcalc.PAS

@@ -4,7 +4,7 @@ Interface
    Function Simply(a:string):real;
 Implementation
 const
- deyst: set of char = ['+','-','*','/','(',')','^','s','c','t','g','û','|'];
+ deyst: set of char = ['+','-','*','/','(',')','^','s','c','t','g','√','|'];
 
 function calc(var sum : real; num:real;dey:char) : boolean;
 var i : byte;
@@ -25,7 +25,7 @@ begin
        '+': sum := sum + num;
        '-': sum := sum - num;
        '*': sum := sum * num;
-       'û': sum := sqrt(abs(num));
+       '√': sum := sqrt(abs(num));
        '|': sum := abs(num);
        '/': if num <> 0 then sum := sum / num
             else sum := sum / 0.00001;
@@ -108,10 +108,10 @@ begin
       insert(tmp2,a,i-len1)
     end;
 
-  while (pos('^',a)<>0)or(pos('û',a)<>0) do
+  while (pos('^',a)<>0)or(pos('√',a)<>0) do
     begin
       i := pos('^',a);
-      j := pos('û',a);
+      j := pos('√',a);
       if ((j<i) or (i=0)) and (j<>0) then i:=j;
       len1 := findnum(num1,a,i,0);
       str(num1:0:5,tmp1);
@@ -216,7 +216,7 @@ begin
   begin
     i:=pos('sqrt',a);
     delete(a,i,4);
-    Insert('1û',a,i);
+    Insert('1√',a,i);
   end;
 
  while pos('abs',a) <> 0 do

+ 1 - 1
PAS/QUICKSOR.PAS

@@ -77,7 +77,7 @@ Begin
       sec1001 := 100 + sec1001;
     end;
   WriteLn;
-  Write(Hour1,' ç á®¢ ',Minute1,' ¬¨­ãâ ',second1,' ᥪ㭤 ',sec1001,' 100-å');
+  Write(Hour1,' ча�ов ',Minute1,' минут ',second1,' �екунд ',sec1001,' 100-х');
   ReadLn;
   for i := 1 to n do
     begin

+ 22 - 22
PAS/QWLOG.PAS

@@ -120,10 +120,10 @@ Begin
   g := GetNum(Name);
   WriteLn(fout,'        --- ',cur[g].Name,' ---        ');
   WriteLN(fout);
-  WriteLn(fout,'”à £®¢:      ',cur[g].Frag);
-  WriteLn(fout,'‘ ¬®ã¡¨©áâ¢: ',cur[g].Suicide);
-  WriteLn(fout,'‘¬¥à⥩:     ',cur[g].Deaths);
-  WriteLn(fout,'“¡¨©á⢠ : ');
+  WriteLn(fout,'Фрагов:      ',cur[g].Frag);
+  WriteLn(fout,'Самоубий�тв: ',cur[g].Suicide);
+  WriteLn(fout,'Смертей:     ',cur[g].Deaths);
+  WriteLn(fout,'Убий�тва : ');
   h := 1;
   while cur[h].Name <> '' do
     begin
@@ -156,7 +156,7 @@ Begin
       inc(max,cur[l].Frag);
       inc(l);
     end;
-  WriteLn(o,'‚ᥣ® äà £®¢: ',Max);
+  WriteLn(o,'В�его фрагов: ',Max);
   l := 1;
   max := 0;
   While cur[l].Name <> '' do
@@ -164,7 +164,7 @@ Begin
       inc(max,cur[l].Suicide);
       inc(l);
     end;
-  WriteLn(o,'‚ᥣ® á ¬®ã¡¨©áâ¢: ',max);
+  WriteLn(o,'В�его �амоубий�тв: ',max);
   l := 1;
   max := 0;
   While cur[l].Name <> '' do
@@ -172,7 +172,7 @@ Begin
       inc(max,cur[l].Deaths);
       inc(l);
     end;
-  WriteLn(o,'‚ᥣ® ᬥà⥩: ',max);
+  WriteLn(o,'В�его �мертей: ',max);
   Close(o);
 End;
 {SaveRes}
@@ -183,7 +183,7 @@ Begin
   FindFirst('*.log',AnyFile,find);
   While DOSError = 0 do
     begin
-      WriteLn('€­ «¨§¨àãî ä ©« ',find.name,' ...');
+      WriteLn('�нализирую файл ',find.name,' ...');
       Assign(LogFile,find.name);
       Reset(LOgFile);
       While not EOF(LogFile) do
@@ -201,22 +201,22 @@ Begin
   Write(inp,cur);
   Close(inp);
   End
-  else if ParamStr(1) <> '/?' then WriteLn('‡ ¯ãáâ¨â¥ á ¯ à ¬¥â஬ /? ¤«ï ¯®¬®é¨')
+  else if ParamStr(1) <> '/?' then WriteLn('Запу�тите � параметром /? дл� помощи')
     else
       begin
-        WriteLn('Ž ç¥¬ : ');
-        WriteLn('  „ ­­ ï ¯à®£à ¬¬  ¯®¬®¦¥â ¯®«ì§®¢ â¥«ï¬ á¨á⥬ë Quake World');
-        WriteLn('  ®¡®¡é¨âì ¨ ­ £«ï¤­® ¯à®á¬®âà¥âì १ã«ìâ âë ¡ â «¨©.');
-        WriteLn('ˆá¯®«ì§®¢ ­¨¥ : ');
-        WriteLn('  ‡ ¯ãáâ¨â¥ ¯à®£à ¬¬ã ¢ ª â «®£¥ á «®£ ¬¨, ᤥ« ­­ë¬¨ ¯à¨');
-        WriteLn('  ¯®¬®é¨ ª®¬ ­¤ë "fraglogfile" ­  á¥à¢¥à¥. �ணࠬ¬  ᣥ­¥à¨àã¥â');
-        WriteLn('  ä ©« "qwfrag.dat" ¢ ª®â®à®¬ ᮤ¥à¦¨âáï ¢áï ¨­ä®à¬ æ¨ï.');
-        WriteLn('  �®á«¥ à ¡®âë ¯à®£à ¬¬ë «®£¨ ¡ã¤ãâ 㤠«¥­ë ¢ 楫ïå ¯à¥¤®â¢à é¥­¨ï');
-        WriteLn('  ¤ã¯®¢, ¨ ᣥ­¥à¨à®¢ ­ ä ©« "qw.scr" ¢ ª®â®àë© ¢ ⥪á⮢®¬ ¢¨¤¥');
-        WriteLn('  ¡ã¤¥â ¯à®¤¥¬®­áâà¨à®¢ ­ १ã«ìâ â.');
-        WriteLn('Ž£à ­¨ç¥­¨ï : ');
-        WriteLn('  Š á®¦ «¥­¨î ­  ⥪ã騩 ¬®¬¥­â ª®«¨ç¥á⢮ ¨£®à®ª®¢ «¨¬¨â¨à®¢ ­®');
-        WriteLn('  20-î ¢å®¦¤¥­¨ï¬¨.');
+        WriteLn('О чем : ');
+        WriteLn('  Данна� программа поможет пользовател�м �и�темы Quake World');
+        WriteLn('  обобщить и нагл�дно про�мотреть результаты баталий.');
+        WriteLn('И�пользование : ');
+        WriteLn('  Запу�тите программу в каталоге � логами, �деланными при');
+        WriteLn('  помощи команды "fraglogfile" на �ервере. Программа �генерирует');
+        WriteLn('  файл "qwfrag.dat" в котором �одержит�� в�� информаци�.');
+        WriteLn('  По�ле работы программы логи будут удалены в цел�х предотвращени�');
+        WriteLn('  дупов, и �генерирован файл "qw.scr" в который в тек�товом виде');
+        WriteLn('  будет продемон�трирован результат.');
+        WriteLn('Ограничени� : ');
+        WriteLn('  К �ожалению на текущий момент количе�тво игороков лимитировано');
+        WriteLn('  20-ю вхождени�ми.');
       end;
   WriteLn;
   WriteLn('Quake World Frag Log Analyzer ver 1.0');

+ 2 - 2
PAS/RAZLFTRL.PAS

@@ -21,7 +21,7 @@ Begin
 End;{FindNextSimple}
 {--------------------------------}
 Begin
-  Write('‚¢¥¤¨â¥ ç¨á«®: ');
+  Write('Введите чи�ло: ');
   ReadLn(nums);
   GetTime(hour,Minute,Second,sec100);
   timestart := hour*3600;
@@ -61,6 +61,6 @@ Begin
   timetot := timetot - minute*60;
   second := timetot;
   WriteLn;
-  Write('‚à¥¬ï ¯à®áç¥â : ',Hour,' ç á®¢ ',Minute,' ¬¨­ãâ ',second,' ᥪ㭤');
+  Write('Врем� про�чета: ',Hour,' ча�ов ',Minute,' минут ',second,' �екунд');
   ReadLn
 End.

+ 1 - 1
PAS/RAZLOZEN.PAS

@@ -16,7 +16,7 @@ Begin
 End;{FindNextSimple}
 {--------------------------------}
 Begin
-  Write('‚˘Ą¤¨âĄ ç¨á«®: ');
+  Write('Введите чи�ло: ');
   ReadLn(num);
   cursimple := 1;
   cur := 1;

+ 3 - 3
PAS/RayTracing/GTYPES.PAS

@@ -29,9 +29,9 @@ type
   TSurfDesc = record
     Kd, Ks, Ns : float;
     {
-      Kd - Š®íä䍿¨¥­â à áá¥ï­¨ï
-      Ks - Š®íä䍿¨¥­â ®âà ¦¥­¨ï
-      Ns - Š®íä䍿¨¥­â ¢¨¤  ®âà ¦¥­¨ï
+      Kd - Ко�ффициент ра��е�ни�
+      Ks - Ко�ффициент отражени�
+      Ns - Ко�ффициент вида отражени�
     }
   end;
 

+ 1 - 1
PAS/RayTracing/MATRICES.PAS

@@ -1,5 +1,5 @@
 UNIT matrices;
-{‚ᥠãªà ¤¥­® á ¨á室­¨ª®¢ POV-Ray
+{В�е украдено � и�ходников POV-Ray
 Ported to PAS by IE
 }
 			INTERFACE

+ 12 - 12
PAS/RayTracing/PROTGA.PAS

@@ -15,14 +15,14 @@ type
     Constructor Init(OutPut : string;ResX,ResY:word);
     Procedure GetPointColor(var aC:RGB;aRay:TRay);
     Procedure GetPointColor2(var aC:RGB;aRay:TRay);
-     { ˆá¯®«ì§®¢ ­¨¥ ¡®«¥¥ "ç¥áâ­®©" á â®çª¨ §à¥­¨ï 䨧¨ª¨ ä®à¬ã«ë
-       à ááç¥â  ®á¢¥é¥­­®á⨠(¤¥«¨¬ ª®íä䍿¨¥­âë ­  ª¢ ¤à â à ááâ®ï­¨ï)
-       ’ॡãîâáï ¨áâ®ç­¨ª¨ ¢ 5000-20000 à § ¬®é­¥¥
+     { И�пользование более "че�тной" � точки зрени� физики формулы
+       ра��чета о�вещенно�ти (делим ко�ффициенты на квадрат ра��то�ни�)
+       Требуют�� и�точники в 5000-20000 раз мощнее
      }
     Procedure GetReflPointColor(var aC:RGB;aRay:TRay;Num:word);
     {
-      � ¡®â îâ ®âà ¦¥­¨ï !!!!
-      Num - £«ã¡¨­  ४ãàᨨ (¤«ï ¯¥à¢®£® § ¯ã᪠ - 1)
+      Работают отражени� !!!!
+      Num - глубина рекур�ии (дл� первого запу�ка - 1)
     }
     Procedure Trace(ResX,ResY:longint;BegSet,Increase:longint);
     Destructor Done;virtual;
@@ -117,14 +117,14 @@ type
           if (FindISect(LRay,tmp) = nil) or (tmp>1.0)  then
           begin
 	    tmp := Vcos(Norm,LRay.Dir) * oB^.Surface^.Kd
-{New 2 Prev}    / VDot(LRay.Dir,LRay.Dir); {„¥«¨¬ ­  ª¢ ¤à â à ááâ®ï­¨ï
-		    				¤® ¨áâ®ç­¨ª }
+{New 2 Prev}    / VDot(LRay.Dir,LRay.Dir); {Делим на квадрат ра��то�ни�
+		    				до и�точника}
             CAddMul(aC,Lt^.Color,tmp);
 
             VLinear(R,Norm,LRay.Dir,-2*VDot(Norm,LRay.Dir),1);
             tmp := Pow(VCos(R,aRay.Dir),Ob^.Surface^.Ns)*Ob^.Surface^.Ks
-{New}            	   / VDot(LRay.Dir,LRay.Dir); {„¥«¨¬ ­  ª¢ ¤à â à ááâ®ï­¨ï
-		    				¤® ¨áâ®ç­¨ª }
+{New}            	   / VDot(LRay.Dir,LRay.Dir); {Делим на квадрат ра��то�ни�
+		    				до и�точника}
             CAddMul(aC,Lt^.Color,tmp);
           end;
  	end;
@@ -176,8 +176,8 @@ type
                          / VDot(L.Dir,L.Dir)
             else
               tmp := Pow(VCos(R,aRay.Dir),Ob^.Surface^.Ns)*Ob^.Surface^.Ks
-{New}              / VDot(L.Dir,L.Dir); {„¥«¨¬ ­  ª¢ ¤à â à ááâ®ï­¨ï
-		    				¤® ¨áâ®ç­¨ª }
+{New}              / VDot(L.Dir,L.Dir); {Делим на квадрат ра��то�ни�
+		    				до и�точника}
             CAddMul(aC,Lt^.Color,tmp);
           end;
  	end;
@@ -211,7 +211,7 @@ type
      Seek(outF,BegSet);
 
      C := View.LLPos;
-     VLinear(DX,View.Right,DX,1/ResX,0); {� áç¥â ¢¥ªâ®à  ¯à¨à®áâ  ¯® X & Y}
+     VLinear(DX,View.Right,DX,1/ResX,0); {Ра�чет вектора приро�та по X & Y}
      VLinear(DY,View.Up,   DY,1/ResY,0); {}
 
      for i := ResY-1 downto 0 do

+ 5 - 5
PAS/RayTracing/TGA.PAS

@@ -12,8 +12,8 @@ type
     Constructor Init(OutPut : string);
     Procedure GetReflPointColor(var aC:RGB;aRay:TRay;Num:word);
     {
-      � ¡®â îâ ®âà ¦¥­¨ï !!!!
-      Num - £«ã¡¨­  ४ãàᨨ (¤«ï ¯¥à¢®£® § ¯ã᪠ - 1)
+      Работают отражени� !!!!
+      Num - глубина рекур�ии (дл� первого запу�ка - 1)
     }
     Procedure Trace(ResX,ResY:word);
     Destructor Done;virtual;
@@ -75,8 +75,8 @@ type
                          / VDot(L.Dir,L.Dir)
             else
               tmp := Pow(VCos(R,aRay.Dir),Ob^.Surface^.Ns)*Ob^.Surface^.Ks
-{New}              / VDot(L.Dir,L.Dir); {„¥«¨¬ ­  ª¢ ¤à â à ááâ®ï­¨ï
-		    				¤® ¨áâ®ç­¨ª }
+{New}              / VDot(L.Dir,L.Dir); {Делим на квадрат ра��то�ни�
+		    				до и�точника}
             CAddMul(aC,Lt^.Color,tmp);
           end;
  	end;
@@ -113,7 +113,7 @@ type
      BlockWrite(outF,i,2);
 
      C := View.LLPos;
-     VLinear(DX,View.Right,DX,1/ResX,0); {� áç¥â ¢¥ªâ®à  ¯à¨à®áâ  ¯® X & Y}
+     VLinear(DX,View.Right,DX,1/ResX,0); {Ра�чет вектора приро�та по X & Y}
      VLinear(DY,View.Up,   DY,1/ResY,0); {}
 
      for i := ResY-1 downto 0 do

+ 7 - 7
PAS/RayTracing/TGA2.PAS

@@ -15,8 +15,8 @@ type
     Constructor Init(OutPut : string);
     Procedure GetReflPointColor(var aC:RGB;aRay:TRay;Num:word);
     {
-      � ¡®â îâ ®âà ¦¥­¨ï !!!!
-      Num - ⥪ãé ï £«ã¡¨­  ४ãàᨨ (¤«ï ¯¥à¢®£® § ¯ã᪠ - 1)
+      Работают отражени� !!!!
+      Num - текуща� глубина рекур�ии (дл� первого запу�ка - 1)
     }
     Procedure Trace(ResX,ResY:word);
     Destructor Done;virtual;
@@ -72,14 +72,14 @@ type
           if (FindISect(L,tmp) = nil) or (tmp>1.0)  then
           begin
 	    tmp := Vcos(N,L.Dir) * oB^.Surface^.Kd
-{New 2 Prev}    / VDot(L.Dir,L.Dir); {„¥«¨¬ ­  ª¢ ¤à â à ááâ®ï­¨ï
-		    				¤® ¨áâ®ç­¨ª }
+{New 2 Prev}    / VDot(L.Dir,L.Dir); {Делим на квадрат ра��то�ни�
+		    				до и�точника}
             CAddMul(aC,Lt^.Color,tmp);
 
             VLinear(R,N,L.Dir,-2*VDot(N,L.Dir),1);
             tmp := Pow(VCos(R,aRay.Dir),Ob^.Surface^.Ns)*Ob^.Surface^.Ks
-{New}            	   / VDot(L.Dir,L.Dir); {„¥«¨¬ ­  ª¢ ¤à â à ááâ®ï­¨ï
-		    				¤® ¨áâ®ç­¨ª }
+{New}            	   / VDot(L.Dir,L.Dir); {Делим на квадрат ра��то�ни�
+		    				до и�точника}
             CAddMul(aC,Lt^.Color,tmp);
           end;
  	end;
@@ -118,7 +118,7 @@ type
      BlockWrite(outF,i,2);
 
      C := View.LLPos;
-     VLinear(DX,View.Right,View.Right,1/ResX,0); {� áç¥â ¢¥ªâ®à  ¯à¨à®áâ  ¯® X & Y}
+     VLinear(DX,View.Right,View.Right,1/ResX,0); {Ра�чет вектора приро�та по X & Y}
      VLinear(DY,View.Up,   View.Right,1/ResY,0); {}
 
      for i := ResY-1 downto 0 do

+ 14 - 14
PAS/RayTracing/UVECTOR.PAS

@@ -12,7 +12,7 @@ CONST
   ZEROVEC : tVec = (X:0;Y:0;Z:0);
 
  Function Max(a,b:double):double; {}
- Function vCos(a,b:tVec):double; {Cos(a^b) || 0, ¥á«¨ a^b > 90}
+ Function vCos(a,b:tVec):double; {Cos(a^b) || 0, е�ли a^b > 90}
  Function aCos(a,b:tVec):double; {|Cos(a^b)|}
  Function rCos(a,b:tVec):double; {Cos(a^b)}
  Function Tan(a:double):double;
@@ -20,44 +20,44 @@ CONST
 
  Function Pow(a:double;N:double):double; {a ^ N}
 
- Procedure VSet(var aR:tVec;x,y,z : double); {ˆ â ª ¯®­ïâ­®}
- Procedure VNorm(var aV:tVec;aLen:double); {�®à¬ «¨§ æ¨ï ¢¥ªâ®à }
- Function  VDot(aV1,aV2:tVec):double; {v1.v2 ‘ª «ïà­®¥ ¯à®¨§¢¥¤¥­¨¥}
- Procedure VCross(var R : tVec;aV1,aV2:tVec); {v1 X v2 ‚¥ªâ®à­®¥ ¯à®¨§¢¥¤¥­¨¥}
+ Procedure VSet(var aR:tVec;x,y,z : double); {И так пон�тно}
+ Procedure VNorm(var aV:tVec;aLen:double); {�ормализаци� вектора}
+ Function  VDot(aV1,aV2:tVec):double; {v1.v2 Скал�рное произведение}
+ Procedure VCross(var R : tVec;aV1,aV2:tVec); {v1 X v2 Векторное произведение}
  Procedure VLinear(var V:tVec;V1,V2:tVec;k1,k2:double);
  Function  VLength(aV:tVec):double;
-   {‹¨­¥©­ ï ¯à®¤ãªæ¨ï (V=V1*k1+V2*K2}
+   {Линейна� продукци� (V=V1*k1+V2*K2}
 
- Procedure VRandomize(var aN:tVec;C:double); {�¥¡®«ì讥 á«ãç ©­®¥
-                                              ¨§¬¥­¥­¨¥ ¢¥ªâ®à }
+ Procedure VRandomize(var aN:tVec;C:double); {�ебольшое �лучайное
+                                              изменение вектора}
 
 IMPLEMENTATION
 
-Procedure VLinear; {‹¨­¥©­ ï ¯à®¤ãªæ¨ï (V=V1*k1+V2*K2}
+Procedure VLinear; {Линейна� продукци� (V=V1*k1+V2*K2}
 begin
  V.x:= V1.x*k1 + V2.x*K2;
  V.y:= V1.y*k1 + V2.y*K2;
  V.z:= V1.z*k1 + V2.z*K2;
 end;{Linear}
 {--------------------------------------------------------------------}
-Function  VDot; {v1.v2 ‘ª «ïà­®¥ ¯à®¨§¢¥¤¥­¨¥}
+Function  VDot; {v1.v2 Скал�рное произведение}
 begin
   VDot := aV1.X*aV2.X + aV1.Y*aV2.Y + aV1.Z*aV2.Z;
 end;{DotMul}
 {--------------------------------------------------------------------}
-Procedure  VCross; {v1 X v2 ‚¥ªâ®à­®¥ ¯à®¨§¢¥¤¥­¨¥}
+Procedure  VCross; {v1 X v2 Векторное произведение}
 begin
      R.X := av1.y*av2.z - av1.z*av2.y;
      R.Y := av1.z*av2.x - av1.x*av2.z;
      R.Z := av1.x*av2.y - av1.y*av2.x;
 end;{XMul}
 {--------------------------------------------------------------------}
-Procedure VSet; {ˆ â ª ¯®­ïâ­®}
+Procedure VSet; {И так пон�тно}
 begin
   aR.x := x;aR.y := y;aR.z := z;
 end;
 {--------------------------------------------------------------------}
-Procedure VNorm(var aV:tVec;aLen:double); {�®à¬ «¨§ æ¨ï ¢¥ªâ®à }
+Procedure VNorm(var aV:tVec;aLen:double); {�ормализаци� вектора}
 {By IE}
 var len : double;
 begin
@@ -72,7 +72,7 @@ begin
   else Max:=b;
 end;{Max}
 {--------------------------------------------------------------------}
-Function vCos(a,b:tVec):double; {Cos(a^b) || 0, ¥á«¨ a^b > 90}
+Function vCos(a,b:tVec):double; {Cos(a^b) || 0, е�ли a^b > 90}
 begin
  vCos:=Max(VDot(a, b), 0) / sqrt(VDot(a, a) * VDot(b, b));
 end;{vCos}

+ 2 - 2
PAS/SNOW.PAS

@@ -262,12 +262,12 @@ For I := 63999-320 DownTo 0 Do
             {if (ParamCount<2) or ((ParamCount=1) and (ParamStr(1)='ACID'))
 then}
 
->  ‚®â ®â á § ª®¬¥­â à¨âì
+>  Вот от �юда закоментарить
 
                if (vScr^[i+d]>0) and (vScr^[i+d]<250) then begin vScr^[i]:=c;
 continue; end;
 
-> ¨ ¤® á.
+> и до �юда.
 
             case c of
                  DarkSnow : if DF then

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor