Выбор плоскости или совокупности плоскостей, обладающих заданными свойствами. Тестирование программы UGOL, страница 4

VAR

I, J, K : INTEGER;

BEGIN

K:=0;

FOR I:=1 TO UG-1 DO

    BEGIN

    FOR J:=I+1 TO UG DO

        BEGIN

        IF ABS(UGOL2[I]-UGOL2[J]) < E THEN   {Проверка условия равенства углов}

           BEGIN

           K:=K+1;

           IDENT[K,1]:=I;                    {Запись номеров пар плоскостей,между которыми равные углы}

           IDENT[K,2]:=J

           END

        END

    END;

ID:=K

END;

{----------Процедура вывода результатов в файл------------}

PROCEDURE OUT_TO_FILE(COEF:COEF_MATR; N:INTEGER);

{Вывод исходных данных}

BEGIN

WRITELN(outFile,' ');

WRITELN(outFile,'       ИСХОДНЫЕ ДАННЫЕ    ');

WRITELN(outFile,' ');

WRITELN(outFile,'КОЛИЧЕСТВО ПЛОСКОСТЕЙ N=',N);

WRITELN(outFile,' ');

WRITELN(outFile,'  НОМЕР              КОЭФФИЦИЕНТЫ');

WRITELN(outFile,'ПЛОСКОСТИ         A          B          C          D');

FOR I:=1 TO N DO

    BEGIN

    EQU:=COEF[I];

    WRITE(outFile,'   ',I,'    ');

    FOR J:=1 TO 4 DO

    WRITE(outFile,'  ',EQU[J]:8:3,'  ');

    WRITELN(outFile,' ');

    END;

WRITELN(outFile,' ');

{Вывод результатов}

WRITELN(outFile,' ');

WRITELN(outFile,'           РЕЗУЛЬТАТЫ    ');

WRITELN(outFile,' ');

{--------------------}

WRITELN(outFile,' ');

IF PP > 0 THEN

{Есть параллельные плоскости}

   BEGIN

   WRITELN(outFile,'     ПАРАЛЛЕЛЬНЫЕ ПЛОСКОСТИ');

   WRITELN(outFile,' ');

   WRITELN(outFile,'  НОМЕР              КОЭФФИЦИЕНТЫ');

   WRITELN(outFile,'ПЛОСКОСТИ        A           B          C           D');

   WRITELN(outFile,' ');

   FOR I:=1 TO PP DO

       BEGIN

       EQU:=COEF[PAR_PL[I,1]];

       WRITE(outFile,'   ',PAR_PL[I,1],'    ');

       FOR J:=1 TO 4 DO

       WRITE(outFile,'  ',EQU[J]:8:3,'  ');

       WRITELN(outFile,' ');

       EQU:=COEF[PAR_PL[I,2]];

       WRITE(outFile,'   ',PAR_PL[I,2],'    ');

       FOR J:=1 TO 4 DO

       WRITE(outFile,'  ',EQU[J]:8:3,'  ');

       WRITELN(outFile,' ');

       WRITELN(outFile,'---------------------------------------------------------');

       WRITELN(outFile,' ')

       END;

   END

ELSE                {Параллельных плоскостей нет}

    WRITELN(outFile,'     ПАРАЛЛЕЛЬНЫХ ПЛОСКОСТЕЙ НЕТ');

IF ID > 0 THEN      {Есть равные углы}

   BEGIN

   WRITELN(outFile,'   ПЛОСКОСТИ, МЕЖДУ КОТОРЫМИ РАВНЫЕ УГЛЫ  ');

   WRITELN(outFile,' ');

   WRITELN(outFile,'  НОМЕР              КОЭФФИЦИЕНТЫ');

   WRITELN(outFile,'ПЛОСКОСТИ        A           B          C           D');

   WRITELN(outFile,' ');

   FOR I:=1 TO ID DO

        BEGIN

        EQU:=COEF[UGOL1[IDENT[I,1],1]];

        WRITE(outFile,'   ',UGOL1[IDENT[I,1],1],'    ');

        FOR J:=1 TO 4 DO

        WRITE(outFile,'  ',EQU[J]:8:3,'  ');

        WRITELN(outFile,' ');

        EQU:=COEF[UGOL1[IDENT[I,1],2]];

        WRITE(outFile,'   ',UGOL1[IDENT[I,1],2],'    ');

        FOR J:=1 TO 4 DO

        WRITE(outFile,'  ',EQU[J]:8:3,'  ');

        WRITELN(outFile,' ');

        WRITELN(outFile,'----------------------','Угол=',UGOL2[IDENT[I,1]]:3:4,'----------------------------');

        EQU:=COEF[UGOL1[IDENT[I,2],1]];

        WRITE(outFile,'   ',UGOL1[IDENT[I,2],1],'    ');

        FOR J:=1 TO 4 DO

        WRITE(outFile,'  ',EQU[J]:8:3,'  ');

        WRITELN(outFile,' ');

        EQU:=COEF[UGOL1[IDENT[I,2],2]];

        WRITE(outFile,'   ',UGOL1[IDENT[I,2],2],'    ');

        FOR J:=1 TO 4 DO

        WRITE(outFile,'  ',EQU[J]:8:3,'  ');

        WRITELN(outFile,' ');

        WRITELN(outFile,'----------------------------------------------------');

        WRITELN(outFile,'----------------------------------------------------')

        END

   END

ELSE            

    WRITELN(outFile,'     ПАР ПЛОСКОСТЕЙ, МЕЖДУ КОТОРЫМИ РАВНЫЕ УГЛЫ, НЕТ')

END;

{-----------Процедура вывода результатов на экран---------------}

PROCEDURE OUT_TO_MONITOR(COEF:COEF_MATR; N:INTEGER);

BEGIN

{Вывод исходных данных}

WRITELN;

WRITELN('       ИСХОДНЫЕ ДАННЫЕ    ');

WRITELN;