Программа


CONST QuantityElement=6;   { Количество элементов вектора }
TYPE ElementType=integer;  { Тип элементов вектора }
     VectorType=array [1..QuantityElement] of ElementType; { Вектор-тип }
PROCEDURE InputVector (var B:VectorType); { Процедура ввода вектора }
  Var i:word; { Счетчик }
  Begin
    for i:=1 to QuantityElement do { Цикл ввода элементов вектора }
      begin
        Write('Введите элемент [',i,'] ');
                                 { Вывод приглашения ввести элемент вектора }
        ReadLn(B[i]);   { Ввод элемента вектора }
      end
  End;
PROCEDURE SortVector (var B:VectorType);
                              { Процедура сортировки вектора по убыванию }
  Var i,j:word;   { Счетчики }
      NumOfMax:word;
       { Номер максимального элемента в неотсортированной части массива }
      Buf:ElementType; { Переменная для обмена содержимого ячеек массива }
  Begin
    for i:=1 to QuantityElement-1 do { Цикл сортировки массива }
      begin
        NumOfMax:=i;
        { Начальное определение номера максимального из оставшихся элементов }
        for j:=i+1 to QuantityElement do
                            { Цикл просмотра неотсортированной части массива }
          if B[NumOfMax]<B[j] then NumOfMax:=j;
          { Если текущий элемент превосходит максимальный, то переопределение номера максимального }
        if NumOfMax<>i then begin
        { Перестановка текущего элемента с найденным максимальным: }
                              Buf:=B[NumOfMax];
                              B[NumOfMax]:=B[i];
                              B[i]:=Buf
                            end
      end
  End;
PROCEDURE OutputVector (B:VectorType); { Процедура вывода вектора }
  Var i:word;   { Счетчик }
  Begin
    for i:=1 to QuantityElement do { Цикл вывода вектора }
      Write (B[i],'  ');  { Вывод элемента вектора }
    WriteLn  { Вывод конца строки }
  End;
PROCEDURE GetNegativeVector(V1:VectorType;var V2:VectorType);
                       { Процедура создания массива отрицательных элементов }
  Var i:word;   { Счетчик }
  Begin
    for i:=1 to QuantityElement do { Цикл просмотра массива }
      if V1[i]<0 then V2[i]:=V1[i] { Если текущий элемент отрицательный, то запись элемента в создаваемый массив  }
                 else V2[i]:=0 { Иначе - определение создаваемого массива нулем }
  End;
PROCEDURE WriteVector(V:VectorType; FileName:string);
                                          { Процедура записи вектора в файл }
  Var i:word;   { Счетчик }
      F:text; { Файловая переменная }
  Begin
    Assign(F,FileName);  { Связывание фаловой переменной с именем файла }
    Rewrite(F); { Открытие файла под запись }
    for i:=1 to QuantityElement do  { Цикл просмотра вектора }
      if V[i]<0 then WriteLn(F,V[i]); { Запись элемента вектора в файл }
    Close(F) { Закрытие файла }
  End;
PROCEDURE ReadVector(FileName:string); { Процедура чтения вектора из файла }
  Var F:text; { Файловая переменная }
      Buf:ElementType; { Вспомогательная переменная для чтения файла }
  Begin
    Assign(F,FileName);  { Связывание фаловой переменной с именем файла }
    Reset(F); { Открытие файла для чтения }
    while not EOF(F) do { Цикл просмотра файла }
    begin
      ReadLn(F,Buf); { Чтение числа }
      Write(Buf,'  ') { Вывод числа }
    end;
    WriteLn; { Вывод конца строки }
    Close(F) { Закрытие файла }
  End;
VAR Vector,VectorOfNegative:VectorType; { Вектор }
BEGIN
  WriteLn; { Пропуск строки }
  InputVector(Vector); { Ввод вектора }
  WriteLn; { Пропуск строки }
  WriteLn(' Массив: ');  { Вывод заголовка }
  OutputVector(Vector); { Вывод вектора }
  SortVector(Vector); { Сортировка вектора }
  WriteLn(' Отсортированный массив: ');  { Вывод заголовка }
  OutputVector(Vector); { Вывод вектора }
  GetNegativeVector(Vector,VectorOfNegative);
         { Создание массива отрицательных элементов }
  WriteVector(VectorOfNegative,'VECTOR');
                            { Запись вектора отрицательных элементов в файл }
  WriteLn(' Массив отрицательных элементов: ');  { Вывод заголовка }
  ReadVector('VECTOR'); { Чтение файла }
  WriteLn; { Пропуск строки }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию