(*~\Глагол\Отделы\ЧисАн\32\к\Набор\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                         ОТДЕЛ кнВектор;
(*============================================================================*
 * НАЗНАЧЕНИЕ: определение векторов (рядов) из комплексных чисел,
 *         представленных в виде набора из 2-х действительных вида дМатем.Вещ
 *============================================================================*)

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

кнМатем   ИЗ "..\..\..\..\..\Отделы\ЧисАн\32\к\Набор\";
(* 
  НаЭкран ИЗ "..\..\..\..\..\Отделы\Обмен\ВводВывод\";
*)

ВИД
  Вид-    = РЯД ИЗ кнМатем.Вид;    (* вектор  из комплексных чисел (в виде набора) *)
  Доступ- = ДОСТУП К Вид; (* доступ к вектору из комплексных чисел (в виде набора) *)

        (* вид Вещ - это удвоенная точность 32 разряда (6 десятичных знаков)  *)
  Вещ = дМатем.Вещ;                   (* локально *)


(*----------------------------------------------------------------------------*
 * арифметические действия над векторами из комплексных в виде набора
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ умнНаВещ-(кВход- :Вид; v:Вещ;
                  кВыход+:Вид);    (* кВыход:=кВход*v - умножение вектора на вещ. v *)
ЗАДАЧА^ делНаВещ-(кВход- :Вид; v:Вещ;
                  кВыход+:Вид);    (* кВыход:=кВход/v - деление   вектора на вещ. v *)
ЗАДАЧА^ увеличВдейств-(        v:Вещ;
                   кВект+:Вид);    (* кВект *= v - увеличить себя в действ. число v раз *)
ЗАДАЧА^ уменьшВдейств-(        v:Вещ;
                   кВект+:Вид);    (* кВект /= v - уменьшить себя в действ. число v раз *)

ЗАДАЧА^ умнНаКомпл-(кВход- :Вид; w-:кнМатем.Вид;
                    кВыход+:Вид);  (* кВыход:=кВход*w - умножение вектора на компл. w *)
ЗАДАЧА^ делНаКомпл-(кВход- :Вид; w-:кнМатем.Вид;
                    кВыход+:Вид);  (* кВыход:=кВход/w - деление   вектора на компл. w *)
ЗАДАЧА^ увеличВкомпл-(           w-:кнМатем.Вид;
                     кВект+:Вид);     (* кВект *= w - увеличить себя в компл. число w раз *)
ЗАДАЧА^ уменьшВкомпл-(           w-:кнМатем.Вид;
                     кВект+:Вид);     (* кВект /= w - уменьшить себя в компл. число w раз *)


(*----------------------------------------------------------------------------*
 * Переписывание векторов из комплексных в виде набора
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ Списать-(кВход-,
                 кВыход+:Вид);    (* Цель: Переписывание комплексных векторов *)


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


(*============================================================================*
 * арифметические действия над векторами из комплексных в виде набора
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА умнНаВещ-(кВход- :Вид; v:Вещ;
                 кВыход+:Вид);    (* кВыход:=кВход*v - умножение вектора на вещ. v *)
ПЕР
  N,
  i:ЦЕЛ;
УКАЗ
  N:=РАЗМЕР(кВход);
                   (* нормировка на вещественное v
                                  комплексного вектора из наборов кВход *)
  ОТ i:=0 ДО N-1 ВЫП
    кнМатем.умнНаВещ(кВход[i],v,кВыход[i])         (* кВыход[i] = кВход[i]*v  *)
  КОН
КОН умнНаВещ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА умнНаКомпл-(кВход- :Вид; w-:кнМатем.Вид;
                   кВыход+:Вид);  (* кВыход:=кВход*w - умножение вектора на компл. w *)
ПЕР
  N,
  i:ЦЕЛ;
УКАЗ
  N:=РАЗМЕР(кВход);
              (* нормировка на комплексное w (обычное комплексное умножение)
                                  комплексного вектора из наборов кВход *)
  ОТ i:=0 ДО N-1 ВЫП
    кнМатем.умножить(кВход[i],w,кВыход[i])         (* кВыход[i] = кВход[i]*w  *)
  КОН
КОН умнНаКомпл;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА увеличВдейств-(        v:Вещ;
                  кВект+:Вид);    (* кВект *= v - увеличить себя в действ. число v раз *)
ПЕР
  i:ЦЕЛ;
УКАЗ
                  (* нормировка на вещественное v
                                  комплексного вектора из наборов кВект *)
  ОТ i:=0 ДО РАЗМЕР(кВект)-1 ВЫП
    кнМатем.увеличВдейств(v,кВект[i])               (* кВект[i] = кВект[i]*V  *)
  КОН
КОН увеличВдейств;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА уменьшВдейств-(        v:Вещ;
                  кВект+:Вид);    (* кВект /= v - уменьшить себя в действ. число v раз *)
ПЕР
  i:ЦЕЛ;
УКАЗ
                  (* нормировка на вещественное 1/v
                                  комплексного вектора из наборов кВект *)
  ОТ i:=0 ДО РАЗМЕР(кВект)-1 ВЫП
    кнМатем.уменьшВдейств(v,кВект[i])               (* кВект[i] = кВект[i]/V  *)
  КОН
КОН уменьшВдейств;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА делНаВещ-(кВход- :Вид; v:Вещ;
                 кВыход+:Вид);    (* кВыход:=кВход/v - деление   вектора на вещ. v *)
ПЕР
  N,
  i:ЦЕЛ;
УКАЗ
  N:=РАЗМЕР(кВход);
                   (* нормировка на вещественное 1/v
                                  комплексного вектора из наборов кВход *)
  ОТ i:=0 ДО N-1 ВЫП
    кнМатем.делНаВещ(кВход[i],v,кВыход[i])         (* кВыход[i] = кВход[i]*v  *)
  КОН
КОН делНаВещ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА делНаКомпл-(кВход- :Вид; w-:кнМатем.Вид;
                   кВыход+:Вид);  (* кВыход:=кВход/w - деление   вектора на компл. w *)
ПЕР
  N,
  i:ЦЕЛ;
УКАЗ
  N:=РАЗМЕР(кВход);
              (* нормировка на комплексное 1/w (обычное комплексное деление)
                                  комплексного вектора из наборов кВход *)
  ОТ i:=0 ДО N-1 ВЫП
    кнМатем.делить(кВход[i],w,кВыход[i])           (* кВыход[i] = кВход[i]/w  *)
  КОН
КОН делНаКомпл;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА увеличВкомпл-(           w-:кнМатем.Вид;
                    кВект+:Вид);     (* кВект *= w - увеличить себя в компл. число w раз *)
ПЕР
  i:ЦЕЛ;
УКАЗ
              (* нормировка на комплексное w (обычное комплексное умножение)
                                  комплексного вектора из наборов кВект *)
  ОТ i:=0 ДО РАЗМЕР(кВект)-1 ВЫП
    кнМатем.увеличВкомпл(w,кВект[i])                (* кВект[i] = кВект[i]*w  *)
  КОН
КОН увеличВкомпл;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА уменьшВкомпл-(           w-:кнМатем.Вид;
                    кВект+:Вид);     (* кВект /= w - уменьшить себя в компл. число w раз *)
ПЕР
  i:ЦЕЛ;
УКАЗ
              (* нормировка на комплексное 1/w (обычное комплексное деление)
                                  комплексного вектора из наборов кВект *)
  ОТ i:=0 ДО РАЗМЕР(кВект)-1 ВЫП
    кнМатем.уменьшВкомпл(w,кВект[i])                (* кВект[i] = кВект[i]/w  *)
  КОН
КОН уменьшВкомпл;


(*============================================================================*
 * Переписывание векторов из комплексных в виде набора
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Списать-(кВход-,
                кВыход+:Вид);    (* Цель: Переписывание комплексных векторов *)
ПЕР
  i:ЦЕЛ;
УКАЗ
  ОТ   i:=0 ДО РАЗМЕР(кВход)-1 ВЫП
    кВыход[i]:=кВход[i]
  КОН
КОН Списать;

КОН кнВектор.
