(*~\Глагол\ПриложенияЧисАн\64\к\Ряд\МатФункции\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                                ОТДЕЛ ПроКомплРяд+;
(*============================================================================*
 * НАЗНАЧЕНИЕ: проверка вычислений с комплексными числами в виде ряда
 *============================================================================*)

ИСПОЛЬЗУЕТ 
 дМатем   ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\д\",

крМатем   ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\к\Ряд\",
(*
  Вектор  ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\д\",
  Матрица ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\д\",

крМатрица ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\к\Ряд\",

крМатрВВ  ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\к\Ряд\ВводВывод\",
крВектВВ  ИЗ "..\..\..\..\..\Отделы\ЧисАн\64\к\Ряд\ВводВывод\",

  ИзФайла ИЗ "..\..\..\..\..\Отделы\Обмен\ВводВывод\",
*)
  НаЭкран ИЗ "..\..\..\..\..\Отделы\Обмен\ВводВывод\";

ПОСТ
  АРГУМЕНТОВ = 20; (* число аргументов *)

ВИД
  Функция = ЗАДАЧА(z1-,z2+:крМатем.Вид);

  крВЕКТ  = РЯД АРГУМЕНТОВ+1 ИЗ крМатем.Вид;


(*=рррррррррррррррррррррррр= реализация задач =рррррррррррррррррррррррррррррр=*)


(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Арифметика;
ПЕР
  кX,кY,
  кZ:крМатем.Вид;
УКАЗ
  НаЭкран.ВсяЦепь('^*** Комплексная арифметика из крМатем.отд: ***^ сложить(), вычесть(), умножить(), делить().^');
  крМатем.алгебрВид(1, 1,кY);                               (* кY = 1 + i*1     *)
  крМатем.алгебрВид(2,-1,кZ);                               (* кZ = 2 - i*1     *)
  НаЭкран.Вещ4числа('  Пусть кY = (%5f;%5f), а кZ = (%5f;%5f), тогда:^^',
                      кY[0],кY[1],        кZ[0],кZ[1]
         );
  крМатем.сложить (кY,кZ,кX); НаЭкран.Вещ4числа('кY + кZ = (%5f;%5f)^',кX[0],кX[1],0,0);
  крМатем.вычесть (кY,кZ,кX); НаЭкран.Вещ4числа('кY - кZ = (%5f;%5f)^',кX[0],кX[1],0,0);
  крМатем.умножить(кY,кZ,кX); НаЭкран.Вещ4числа('кY * кZ = (%5f;%5f)^',кX[0],кX[1],0,0);
  крМатем.делить  (кY,кZ,кX); НаЭкран.Вещ4числа('кY / кZ = (%5f;%5f)^',кX[0],кX[1],0,0)
КОН Арифметика;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Корень;
ПЕР
  n:ЦЕЛ;
  кX,кZ,
  кY:крМатем.Вид;
УКАЗ
  крМатем.алгебрВид(-1,1,кX);                    (*  кX=-1 + i*1       *)
  НаЭкран.ВсяЦепь('^*** 3 комплексных кубических корня из кX=(-1;1)^^');
  НаЭкран.ВсяЦепь(' n,             кZ,      кZ**(1/3),   [кZ**(1/3)]**3^');

  ОТ n:=0 ДО 2 ВЫП
    крМатем.корни(кX,n,3,кZ);                    (*     кZ=кор(кX,n,3) *)
    крМатем.степКЦ(кZ,3,кY);                     (*  кY=кZ**3          *)
    НаЭкран.Вещ4числа(' %d,  (%5f;%5f),  ',n,кX[0],кX[1],0);
    НаЭкран.Вещ4числа('(%5f;%5f),  (%5f;%5f)^',кZ[0],кZ[1],кY[0],кY[1])
  КОН
КОН Корень;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Оборот(прямИмя-,обрИмя-:ЦЕПЬ; прямФ,обрФ:Функция);
ПЕР
  i:ЦЕЛ;
  кВект:крВЕКТ;  (* из АРГУМЕНТОВ=20+1 *)
  кY,
  кZ:крМатем.Вид;
УКАЗ
                 (* вычисление 20 комплексных элементов ряда *)
  крМатем.алгебрВид(   0,   0,кВект[ 1]);
  крМатем.алгебрВид( 0.5, 0.5,кВект[ 2]);
  крМатем.алгебрВид(-0.5, 0.5,кВект[ 3]);
  крМатем.алгебрВид(-0.5,-0.5,кВект[ 4]);
  крМатем.алгебрВид( 0.5,-0.5,кВект[ 5]);
  крМатем.алгебрВид(   1,   0,кВект[ 6]);
  крМатем.алгебрВид(   1,   1,кВект[ 7]);
  крМатем.алгебрВид(   0,   1,кВект[ 8]);
  крМатем.алгебрВид(  -1,   1,кВект[ 9]);
  крМатем.алгебрВид(  -1,   0,кВект[10]);
  крМатем.алгебрВид(  -1,  -1,кВект[11]);
  крМатем.алгебрВид(   0,  -1,кВект[12]);
  крМатем.алгебрВид(   1,  -1,кВект[13]);
  крМатем.алгебрВид(   5,   0,кВект[14]);
  крМатем.алгебрВид(   5,   3,кВект[15]);
  крМатем.алгебрВид(   0,   3,кВект[16]);
  крМатем.алгебрВид(  -5,   3,кВект[17]);
  крМатем.алгебрВид(  -5,   0,кВект[18]);
  крМатем.алгебрВид(   5,  -3,кВект[19]);
  крМатем.алгебрВид(   0,  -3,кВект[20]);
          (* печать 20 элементов для заданной функции комплексного аргумента *)
  НаЭкран.ВсяЦепь('^ кВект[i],               кY = ');
  НаЭкран.ВсяЦепь(прямИмя);
  НаЭкран.ВсяЦепь('(кВект[i]),         кZ = ');
  НаЭкран.ВсяЦепь(обрИмя);
  НаЭкран.ВсяЦепь('(кY)^');

  ОТ i:=1 ДО АРГУМЕНТОВ ВЫП
        НаЭкран.Вещ4числа('(%10.2e;%10.2e),  ',кВект[i][0],кВект[i][1],0,0);
    прямФ(кВект[i],кY);
    ЕСЛИ дМатем.код = 0 ТО
        НаЭкран.Вещ4числа('(%10.2e;%10.2e),  ',кY[0],кY[1],0,0);
      обрФ(кY,кZ);
      ЕСЛИ дМатем.код = 0 ТО
        НаЭкран.Вещ4числа('(%10.2e;%10.2e)^',кZ[0],кZ[1],0,0)
      ИНАЧЕ
        НаЭкран.Вещ4числа('неопределено^',кZ[0],кZ[1],0,0)
      КОН
    ИНАЧЕ
        НаЭкран.Вещ4числа('неопределено^',кZ[0],кZ[1],0,0)
    КОН
  КОН
КОН Оборот;

(*-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-*)
УКАЗ
  Арифметика;
  Корень;
  Оборот('ln'     ,'exp',крМатем.ln     ,крМатем.exp);
  Оборот('arcsin' ,'sin',крМатем.arcsin ,крМатем.sin);
  Оборот('arccos' ,'cos',крМатем.arccos ,крМатем.cos);
  Оборот('arctg'  ,'tg' ,крМатем.arctg  ,крМатем.tg );
  Оборот('Arsh'   ,'sh' ,крМатем.Arsh   ,крМатем.sh );
  Оборот('Arch'   ,'ch' ,крМатем.Arch   ,крМатем.ch );
  Оборот('Arth'   ,'th' ,крМатем.Arth   ,крМатем.th );
  Оборот('lnГ'    ,'exp',крМатем.lnГ    ,крМатем.exp)
КОН ПроКомплРяд.
