(*~\Глагол\Отделы\ЧисАн\64\ц\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                         ОТДЕЛ шцВектор;
(*============================================================================*
 * НАЗНАЧЕНИЕ: определение векторов из широких целых чисел (64 разряда)
 *============================================================================*)

ИСПОЛЬЗУЕТ
(*
 дМатем   ИЗ "..\..\..\..\Отделы\ЧисАн\64\д\";
*)
шцМатем   ИЗ "..\..\..\..\Отделы\ЧисАн\64\ц\";

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



(*-оооооооооооооо- опережающие определения/заготовки задач -ооооооооооооооооо-*)

 
(*----------------------------------------------------------------------------*)
ЗАДАЧА^ минБольше0-(цВект-:Вид):Цел;  (* наименьший элемент вектора шир.целых > 0 *)
ЗАДАЧА^ мин- (цВект-:Вид):Цел;        (* наименьший элемент вектора шир.целых *)
ЗАДАЧА^ макс-(цВект-:Вид):Цел;        (* наибольший элемент вектора шир.целых *)

(*
ЗАДАЧА^ умнЦ-(дВход- :Вид; m:Цел;
              дВыход+:Вид);
(* умножение действительного вектора целых дВход на целое m: дВыход=дВход*m   *)
*)

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


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


(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА минБольше0-(цВект-:Вид):Цел;
ПЕР
     i:ЦЕЛ;
           МинимумБольше0:Цел;
УКАЗ
           МинимумБольше0:=999999;
  ОТ i:=0 ДО РАЗМЕР(цВект)-1 ВЫП
    ЕСЛИ
                           (цВект[i] > 0)
         И
          (МинимумБольше0 > цВект[i])
    ТО
           МинимумБольше0:= цВект[i]
    КОН 
  КОН;
  ВОЗВРАТ  МинимумБольше0
КОН минБольше0;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА мин-(цВект-:Вид):Цел;
ПЕР
     i:ЦЕЛ;
           Минимум:Цел;
УКАЗ
           Минимум:=цВект[0];
  ОТ i:=1 ДО РАЗМЕР(цВект)-1 ВЫП
    ЕСЛИ            цВект[i] < Минимум ТО
           Минимум:=цВект[i]
    КОН 
  КОН;
  ВОЗВРАТ  Минимум
КОН мин;

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

(*============================================================================*
 * Переписывание векторов целых
 *============================================================================*)

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

КОН шцВектор.
