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

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

ВИД
                     Вид- = РЯД ИЗ цМатем.Цел;
  Доступ- = ДОСТУП К Вид;

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


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

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

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

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


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


(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА минБольше0-(цВект-:Вид; N-:ЦЕЛ):Цел;
ПЕР
           МинимумБольше0:Цел;
     i:Цел;
          (* N:ЦЕЛ; *)                      (* рабочая длина вектора N - любая заданная *)
УКАЗ
          (* N <= РАЗМЕР(цВект);*)

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

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА мин-(цВект-:Вид; N-:ЦЕЛ):Цел;
ПЕР
           Минимум:Цел;
     i:Цел;
          (* N:ЦЕЛ; *)                      (* рабочая длина вектора N - любая заданная *)
УКАЗ
          (* N <= РАЗМЕР(цВект);*)

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

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА макс-(цВект-:Вид; N-:ЦЕЛ):Цел;
ПЕР
          Максимум:Цел;
     i:Цел;
          (* N:ЦЕЛ; *)                      (* рабочая длина вектора N - любая заданная *)
УКАЗ 
          (* N <= РАЗМЕР(цВект);*)

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

        (* нормировка на целое m
                        действительного вектора целых дВход (временного ряда) *)
  ОТ i:=1 ДО N-1(*РАЗМЕР(цВект)-1*) ВЫП
    дВыход[i]:=дВход[i]*m;
  КОН
КОН умнЦ;
*)

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

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

КОН цВектор.
