Создание программы для выбора прямых из множества прямых, заданных коэффициентами уравнения: Ax+By+C=0, страница 2

   end;

 Writeln ('Задайте метод вывода данных '); {Выбор способа вывода данных}

 Writeln ('1 – в файл C:\out.rtf');

 Writeln ('2 – на экран');

  Readln(t1);          { перемен. для обозначения вывода в файл или на экран}

   ugol := ABS(ugol);

   While ugol > 180 do   {приравнивание заданного угла к стандарту сравнения }

    ugol := ugol - 180 ;    {   0 ≤ α ≤ 90      }

   if ugol > 90 then

    ugol := 180 - ugol;

  assign (f , 'C:\out.rtf');     {связь f с файлом out.rtf}

  rewrite(f);                        {открыть файл out.rtf для записи}

  i:=0 ;              {Задание нач. - константного значения кол-ва ‘ Writeln ’ }

  i1:=0 ;            {обнуление счетчика по пункту 1}

  i2:=0 ;            {обнуление счетчика по пункту 3}

  d:=0 ;             {обнуление счетчика по пункту 2}

  if t1 = 1 then begin  {Заголовок к заданию № 1(в файл)}

   Writeln (f,'  | Задание # 1 : Перечень заданных прямых , || Оси OX :|');

   Writeln (f,'    - - - - - - - - - - - - - - - - - - - - - - - - - - -  ');

  end;

  if t1 = 2 then begin   {Заголовок к заданию № 1(на экран)}

   Writeln ('  | Задание # 1 : Перечень заданных прямых , || Оси OX :|');

   Writeln ('    - - - - - - - - - - - - - - - - - - - - - - - - - - -  ');

  end;

 for k:=1 to n do

  if (A[k] = 0) and (B[k] <> 0) then  {обнаружение и вывод прямых параллельных Оси ОХ}

   begin                                              

    i1:= i1 + 1;     

    if t1 = 1 then Writeln (f,'прямая #',k,' : ',B[k]:0:2,'y = ',C[k]:0:2);

    if t1 = 2 then Writeln ('прямая #',k,' : ',B[k]:0:2,'y = ',C[k]:0:2);

   end;

  if i1 = 0 then begin   {Вывод инф-ии об отсутствии прямых парал. Оси ОХ}

   if t1 = 1 then  Writeln (f,'В заданном списке НЕТ таких прямых');

   if t1 = 2 then  Writeln ('В заданном списке НЕТ таких прямых');

  end;

  if t1 = 1 then begin  {Заголовок к заданию № 2 (в файл)}

    Writeln (f,'  | Задание # 2 : Перечень взаимено _|_ прямых :|');

    Writeln (f,'    - - - - - - - - - - - - - - - - - - - - - - -  ');

  end;

  if t1 = 2 then begin   {Заголовок к заданию № 2 (на экран)}

    Writeln ('  | Задание # 2 : Перечень взаимено _|_ прямых :|');

    Writeln ('    - - - - - - - - - - - - - - - - - - - - - - -  ');

  end;

   for k:=1 to n do

    begin

     if ( B[k] <> 0 ) and (A[k] <> 0)

      then

       begin

            kof := ((-1)*A[k]/B[k]) ;        {Вычисление коэф. Для k-ой прямой}

            sravnenie (k , kof , d , res ) ;  {Использование процедуры sravnenie }

       end

      else

      sravnenie_next (k , d );         {Использование процедуры sravnenie_next }

    end;

   if d<1 then begin  {Вывод инф-ии об отсутствии взаимно перпендикулярных прямых}

    if t1 = 1 then Writeln (f,'В заданном списке НЕТ таких прямых');

    if t1 = 2 then Writeln ('В заданном списке НЕТ таких прямых');

   end;

   if t1 = 1 then begin  {Заголовок к заданию № 3 (в файл)}

  Writeln (f,'  | Задание # 3 : Перечень прямых (из взаимно  _|_ прямых)      |');

  Writeln (f,'  |              составляющих с осью  OX угол меньше заданного :|');

  Writeln (f,'    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ');

   end;

   if t1 = 2 then begin   {Заголовок к заданию № 3 (на экран)}

  Writeln ('  | Задание # 3 : Перечень прямых (из взаимно  _|_ прямых)      |');

  Writeln ('  |              составляющих с осью  OX угол меньше заданного :|');

  Writeln ('    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ');

   end;

   sravnenie_uglov (k , ugol , i2 );    {Использование процедуры sravnenie_uglov }

   if i2 = 0 then begin {Вывод инф-ии об отсутствии прямых с углом меньше заданного}

    if t1 = 1 then Writeln (f,'В заданном списке НЕТ таких прямых');

    if t1 = 2 then Writeln ('В заданном списке НЕТ таких прямых');

     end;

  assign(g,'C:\Kypca\Kypca.Pas');   { связь g с файлом C:\Kypca\Kypca.Pas}

  Reset(g);                                       { открытие файла C:\Kypca\Kypca.Pas для чтения }

  While not eof(g) do                        { пока не закончится файл }

   begin

    Readln(g,str);

    While Pos('Writeln',str) <> 0 do       { пока в строке есть ‘ Writeln ’ }

      begin

        i:= i + 1;

        q:= Pos('Writeln',str) ;

        delete(str,q,7);

      end;

   end;

  if t1 = 1 then Writeln(f,’ ‘,i, ' – число повторений Writeln');

  if t1 = 2 then Writeln(‘ ‘,i, ' – число повторений Writeln');

  close(g);                           {Закрыть файл g}                   

  close(f);                            {Закрыть файл f}

  if t = 1 then close(r);         {Закрыть файл r}

END.  {Конец Kypca }