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

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

WRITELN;

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

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

FOR I:=1 TO N DO

    BEGIN

    EQU:=COEF[I];

    WRITE('   ',I,'    ');

    FOR J:=1 TO 4 DO

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

    WRITELN;

    END;

WRITELN;

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

WRITELN;

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

WRITELN;

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

WRITELN;

IF PP > 0 THEN

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

   BEGIN

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

   WRITELN;

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

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

   WRITELN;

   FOR I:=1 TO PP DO

       BEGIN

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

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

       FOR J:=1 TO 4 DO

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

       WRITELN;

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

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

       FOR J:=1 TO 4 DO

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

       WRITELN;

       WRITELN('-------------------------------------------------------------');

       WRITELN

       END;

   END

ELSE

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

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

IF ID > 0 THEN

{Есть равные углы}

   BEGIN

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

   WRITELN;

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

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

   WRITELN;

   FOR I:=1 TO ID DO

        BEGIN

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

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

        FOR J:=1 TO 4 DO

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

        WRITELN;

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

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

        FOR J:=1 TO 4 DO

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

        WRITELN;

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

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

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

        FOR J:=1 TO 4 DO

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

        WRITELN;

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

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

        FOR J:=1 TO 4 DO

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

        WRITELN;

        WRITELN('------------------------------------------------------------');

        WRITELN('------------------------------------------------------------')

        END

   END

ELSE

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

END;

{--------Тело основной программы--------}

BEGIN

CLRSCR;

{-----Связывание с файлом исходных данных-----}

Assign(inputFile,'C:\IN1.TXT');

RESET(inputFile);

IF IORESULT <> 0 THEN            {Проверка связи с файлом}

   BEGIN

   WRITELN(' НЕТ ВХОДНОГО ФАЙЛА ');

   HALT(1)                       {Завершение программы}

   END;

{---Чтение исходных данных---}

WRITELN('Меню выбора исходных данных. Нажмите:');

WRITELN('     1 - если данные находятся в файле IN.TXT');

WRITELN('     2 - если вы хотите ввести исходные данные вручную');

READ( CH );

CASE CH OF

1:   BEGIN

     READLN(inputFile,N);

     FOR I:=1 TO N DO

         BEGIN

         FOR J:=1 TO 4 DO

         READ(inputFile, EQU[J]);

         READLN(inputFile);

         COEF[I]:=EQU

         END

     END;

2:   BEGIN

     WRITELN('Введите количество плоскостей');

     READ(N);

     WRITELN('Введите коэффициенты плоскостей');

     FOR I:=1 TO N DO

         BEGIN

         FOR J:=1 TO 4 DO

         READ(EQU[J]);

         COEF[I]:=EQU

         END

     END;

END;

{-----Обработка исходных данных-----}

E:=EPS;

PARAL_PL(COEF,N,E,PAR_PL,PP);          {Обращение к подпрограмме PARAL_PL}

UGOL_PL(COEF,N,UGOL1,UGOL2,UG);        {Обращение к подпрограмме UGOL_PL}

IDENTICAL_UGOL(UGOL2,E,UG,IDENT,ID);   {Обращение к подпрограмме IDENTICAL_UGOL}