Программа


USES Crt;                      { Подключение модуля Crt }
FUNCTION Menu:byte;            { Функция вывода меню и получения ответа }
  Const QuantityMenuPoint=3;   { Количество пунктов меню }
        ExitPoint=QuantityMenuPoint; { Пункт меню "Выход" }
        MaxLengthMenuPoint=48; { Максимальная длина пункта меню }
        MenuList:array[1..QuantityMenuPoint] of string[MaxLengthMenuPoint] =
                { Список пунктов меню }
                ('[1] Создание файла данных                       ',
                 '[2] Просмотр файла данных и расчет сопротивления',
                 '[3] ВЫХОД                                       ');
  Var MenuMeter:integer;             { Счетчик }
      Point:integer;               { Текущий пункт меню }
  Begin
    ClrScr;             { Очистка экрана }
    for MenuMeter:=1 to QuantityMenuPoint do WriteLn(MenuList[MenuMeter]);
                                                      { Цикл прорисовки меню }
    repeat  { Цикл чтения клавиатуры }
      Point:=Ord(ReadKey);    { Чтение клавиатуры }
      if Point<>27  { Если нажатая клавиша не Esc, }
        then Point:=Point-Ord('0') { то - вычисление введенного пункта меню }
        else Point:=ExitPoint  { иначе - переопределение пункта под "Выход" }
    until (0<Point) and (Point<=QuantityMenuPoint);
                          { Выход из цикла при пролучении корректного ответа }
    { Определение значения функции: }
    if Point=ExitPoint then Menu:=255
                       else Menu:=Point;
    ClrScr             { Очистка экрана }
  End;
FUNCTION Stringer(N:integer):string;  { Функция преобразования числа в строку }
  Var St:string;  { Переменная для преобразования числа в строку }
  Begin
    Str(N,St);  { Преобразование }
    Stringer:=St  { Определение значения функции }
  End;
FUNCTION Question(S:string):boolean; { Функция получения ответа на вопрос }
  Var Ch:char;                       { Буфер }
  Begin
    Write(S,' [Y/N] ');   { Вывод вопроса }
    repeat
      Ch:=ReadKey { Ввод символа }
    until Ch in ['Y','y','N','n','Н','н','Т','т'];
                           { Выход из цикла при получении корректного ответа }
    Question:=Ch in ['Y','y','Н','н']; { Определение значения функции }
    WriteLn(Ch)  { Вывод ответа }
  End;
PROCEDURE MakeFileData(var F:text); { Процедура создания файла данных }
  Var R:real; { Переменная для ввода сопротивления резистора }
      MeterGroup,MeterLine:integer; { Счетчики групп и цепочек в группе }
  Begin
    MeterGroup:=1; { Установка счетчика групп }
    Rewrite(F);   { Открытие файла для записи }
    while Question('Ввести группу N°'+Stringer(MeterGroup)+' ?') do
    begin  { Цикл ввода групп }
      WriteLn('ВВОД ГРУППЫ N°',MeterGroup); { Вывод заголовка }
      MeterLine:=1;    { Установка счетчика цепочек в группе }
      while Question('Ввести цепочку N°'+Stringer(MeterLine)+
                    ' группы N°'+Stringer(MeterGroup)+' ?') do
      begin { Цикл ввода цепочек }
        { Вывод приглашения и подсказки: }
        WriteLn('Введите значения сопротивлений в цепочке, N°'
                ,MeterLine,' группы N°',MeterGroup);
        WriteLn('После последнего элемента введите "0"');
        Read(R); { Ввод споротивления резистора }
        while R>0 do { Цикл ввода сопротивлений }
        begin
          Write(F,R,' ');  { Вывод сопротивления в файл }
          Read(R)          { Ввод сопротивления }
        end;
        WriteLn(F);  { Вывод конца строки файла }
        Inc(MeterLine); { Переопределение номера цепочки }
      end;
      WriteLn(F,'0'); { Вывод маркера конца группы }
      Inc(MeterGroup) { Переопределение номера группы }
    end;
    Close(F)      { Закрытие файла }
  End;
PROCEDURE ViewLine(var F:text; var R_Line:real);
                      { Процедура просмотра цепочки и подсчета сопротивления }
  Var R:real;  { Сопротивление резистора }
  Begin
    R_Line:=0;  { Сброс значения сопротивления цепочки }
    while not SeekEOLn(F) do { Цикл просмотра строки файла (цепочки) }
    begin
      Read(F,R); { Чтение сопротивления }
      R_Line:=R_Line+R; { Набор сопротивления цепочки }
      if R<>0 then Write(R:0:1,' ') { Вывод сопротивления резистора }
    end;
    ReadLn(F); { Пропуск конца строки в файле }
    if R_Line<>0 then WriteLn('R=',R_Line:0:1)
    { Если не было достигнуто конца группы, то вывод сопротивления цепочки }
  End;
PROCEDURE ViewData(var F:text); { Процедура просмотра файла данных }
  Var R_Line,Ro_Group,R_Group,R_Scheme:real; { Сопротивление цепочки,
      проводимость группы, сопротивление группы и сопротивление схемы }
      MeterGroup:integer; { Счетчик групп }
  Begin
    ClrScr; { Очистка экрана }
    Reset(F);     { Открытие файла для чтения }
    MeterGroup:=0;  { Сброс счетчика групп }
    R_Scheme:=0;    { Обнуление сопротивления схемы }
    while not SeekEOF(F) do  { Цикл просмотра файла }
    begin
      Inc(MeterGroup); { Подсчет групп }
      WriteLn('Группа N°',MeterGroup);  { Вывод заголовка }
      Ro_Group:=0;  { Обнуление значения проводимости группы }
      repeat { Цикл просмотра группы }
        ViewLine(F,R_Line);  { Просмотр и подсчет сопротивления цепочки }
        if R_Line<>0 then Ro_Group:=Ro_Group+1/R_Line
                                          { Подсчет проводимости группы }
      until R_Line=0; { Выход из цикла при достижении конца группы }
      if Ro_Group<>0 { Если не было пустой группы }
      then begin     { то }
             R_Group:=1/Ro_Group; { Вычисление сопротивления группы }
             WriteLn('R_группы=',R_Group:0:3); { Вывод сопротивления группы }
             R_Scheme:=R_Scheme+R_Group { Подсчет сопротивления схемы }
           end
      else WriteLn('Данная группа не содержит элементов R=0')
                    { иначе - вывод сообщения }
    end;
    WriteLn; { Пропуск строки }
    WriteLn('R_схемы=',R_Scheme:0:1); { Вывод сопротивления схемы }
    Close(F)      { Закрытие файла }
  End;
PROCEDURE Stop; { Процедура остановки программы }
  Var Ch:char; { Переменная для чтения клавиатуры }
  Begin
    WriteLn;                    { Пропуск строки }
    WriteLn('Нажмите клавишу'); { Вывод приглашения нажать клавишу }
    Ch:=ReadKey                 { Остановка программы до нажатия клавиши }
  End;
CONST FileName='DATA';  { Имя файла данных }
VAR Exit:boolean;           { Флаг "Выход" }
    F:text;             { Файловая переменная }
BEGIN
  Exit:=FALSE;    { Сброс флага "Выход" }
  Assign(F,FileName); { Связывание имени файла с файловой переменной }
  repeat  { Цикл работы программы }
    case Menu of       { Выбор действия по ответу на меню }
        1:begin
            MakeFileData(F); { Создание файла данных }
            ViewData(F);     { Просмотр файла }
            Stop             { Остановка программы до нажатия <Enter> }
          end;
        2:begin
            ViewData(F);     { Просмотр файла }
            Stop             { Остановка программы до нажатия <Enter> }
          end;
      255:Exit:=TRUE  { Подъем флага "Выход" }
    end;
  until Exit; { Выход из цикла при признаке " Выход" }
END.



  СХЕМА ФУНКЦИИ "Menu"

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
 *****************          ┌─
 *               *          │
 *               *          │
 *    ClrScr     *∙∙∙∙∙∙∙∙∙∙│  Очистка экрана
 *               *          │
 *               *          │
 *****************          └─
         :
         :
 *****************          ┌─
 *               *          │ Инициализация
 *               *          │
 *  MenuMeter:=1 *∙∙∙∙∙∙∙∙∙∙│ счетчика
 *               *          │
 *               *          │ цикла
 *****************          └─
         :
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                :
         :                                :
         :                        *****************     ┌─
         :                        *               *     │ Переопределение
         :                        *  MenuMeter:=  *     │
         :                        *               *∙∙∙∙∙│ счетчика
         :                        *  MenuMeter+1  *     │
         :                        *               *     │ цикла
         :                        *****************     └─
         :                                :
         :                                :
         :                          *****************
         :                              Вывод
         :                         *               *
         :                              пункта
         :                        *               *
         :                              меню
         :                       *****************
         :                                :
         *                                :
       *   *  MenuMeter>QuantityMenuPoint :
     *       *                            :
   *           *   Нет                    :
 *               *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                             :
         :                                             :
         :                                             :
   *****************        ┌─                         :
                            │                          :
  *   Point:=     *         │  Чтение                  :
                  ∙∙∙∙∙∙∙∙∙∙│                          :
 *  Ord(ReadKey) *          │  клавиатуры              :
                            │                          :
*****************           └─                         :
         :                                             :
         :                                             :
         :                                             :
         :                                             :
         :                                             :
         *                                             :
       *   *                                           :
     *       *                                         :
   *           *   Да                                  :
 *   Point<>27   *∙∙∙∙∙∙∙∙∙∙∙.                         :
   *           *             :                         :
     *       *               :                         :
       *   *                 :                         :
         *                   :                         :
         : Нет               :                         :
         :                   :                         :
         :                   :                         :
 *****************   *****************    ┌─           :
 *               *   *               *    │ Вычисление :
 *  MenuMeter:=  *   *  MenuMeter:=  *    │ введенного :
 *               *   *               *∙∙∙∙│ пункта     :
 *  ExitPoint    *   * Point-Ord('0')*    │ меню       :
 *               *   *               *    │            :
 *****************   *****************    └─           :
         :                   :                         :
         :∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙'                         :
         :                                             :
         :                                             :
         :                                             :
         *                                             :
       *   *  (0<Point) and (Point<=QuantityMenuPoint) :
     *       *                                         :
   *           *   Нет                                 :
 *               *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
         :
         :
         *
       *   *
     *       *
   *  Point=   *   Да
 *               *∙∙∙∙∙∙∙∙∙∙∙.
   * ExitPoint *             :
     *       *               :
       *   *                 :
         *                   :
         : Нет               :
         :                   :
         :                   :
 *****************   *****************    ┌─
 *               *   *               *    │ Определение
 *               *   *               *    │
 *  Menu:=Point  *   *   Menu:=255   *∙∙∙∙│ значения
 *               *   *               *    │
 *               *   *               *    │ функции
 *****************   *****************    └─
         :                   :
         :∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙'
         :
         :
         :
         :
 *****************     ┌─
 *               *     │
 *               *     │
 *    ClrScr     *∙∙∙∙∙│  Очистка экрана
 *               *     │
 *               *     │
 *****************     └─
         :
         :
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************



  Схема функции "Stringer"

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
 *****************       ┌─
 *               *       │
 *   Str(N,St)   *       │ Преобразование числа в строку
 *               *∙∙∙∙∙∙∙│
 * Stringer:=St  *       │ Определение значения функции
 *               *       │
 *****************       └─
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************



  СХЕМА ФУНКЦИИ "Question"

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
   *****************

  *    Вывод      *

 *    вопроса    *

*****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                   :
   *****************                         :
                                             :
  *   Чтение      *                          :
      нажатия                                :
 *    клавиши    *                           :
                                             :
*****************                            :
         :                                   :
         :                                   :
         :                                   :
         :                                   :
         *                                   :
       *   *                                 :
     *       *                               :
   *  Нажата   *   Нет                       :
 *   допустимая  *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
   *  клавиша  *
     *       *
       *   *
         *
         : Да
         :
         :
   *****************

  *    Вывод      *
      символа
 *    клавиши    *

*****************
         :
         :
 *****************
 *  Определение  *
 *   значения    *
 *    функции    *
 *  по нажатой   *
 *    клавише    *
 *****************
         :
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************



  СХЕМА ПРОЦЕДУРЫ "MakeFileData"

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************      ┌─
 *               *      │
 * MeterGroup:=1 *      │ Установка счетчика групп
 *               *∙∙∙∙∙∙│
 *  Rewrite(F)   *      │ Открытие файла для записи
 *               *      │
 *****************      └─
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                                     :
         *                                                                     :
       *   *                                                                   :
     *       *                                                                 :
   *  Ввести   *   Да                                                          :
 *   группу ?    *∙∙∙∙∙∙∙.                                                     :
   *           *         :                                                     :
     *       *           :                                                     :
       *   *     *****************      ┌─                                     :
         *       *               *      │                                      :
         : Нет   *               *      │  Установка счетчика                  :
         :       * MeterLine:=1  *∙∙∙∙∙∙│                                      :
         :       *               *      │  цепочек в группе                    :
         :       *               *      │                                      :
         :       *****************      └─                                     :
         :               :                                                     :
         :               :                                                     :
         :         *****************                                           :
         :                                                                     :
         :        *               *                                            :
         :          ВВОД ГРУППЫ                                                :
         :       *               *                                             :
         :                                                                     :
         :      *****************                                              :
         :               :                                                     :
         :               :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.  :
         :               :                                                  :  :
         :               *                                                  :  :
         :             *   *                                                :  :
         :           *       *                                              :  :
         :         *  Ввести   *   Да                                       :  :
         :       *   цепочку ?   *∙∙∙∙∙∙∙∙∙.                                :  :
         :         *           *           :                                :  :
         :           *       *             :                                :  :
         :             *   *         *****************                      :  :
         :               *               Вывод                              :  :
         :               : Нет      * приглашения   *                       :  :
         :               :              ввести                              :  :
         :               :         *    цепочку    *                        :  :
         :               :                                                  :  :
         :               :        *****************                         :  :
         :               :                 :                                :  :
         :               :           *****************                      :  :
         :               :                                                  :  :
         :               :          *    Ввод       *                       :  :
         :               :           сопротивления                          :  :
         :               :         *       R       *                        :  :
         :               :                                                  :  :
         :               :        *****************                         :  :
         :               :                 :                                :  :
         :       *****************         :                                :  :
         :       *               *         :∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.  :  :
         :       * MeterGroup:=  *         :                             :  :  :
         :       *               *         *                             :  :  :
         :       * MeterGroup+1  *       *   *                           :  :  :
         :       *               *     *       *                         :  :  :
         :       *****************   *           *   Да                  :  :  :
         :               :         *      R>0      *∙∙∙∙∙∙∙∙.            :  :  :
         :               :           *           *          :            :  :  :
         :               :             *       *            :            :  :  :
         :               :               *   *        *****************  :  :  :
         :               :                 *                             :  :  :
         :               :                 : Нет     *    Вывод      *   :  :  :
         :         *****************       :          сопротивления      :  :  :
         :                                 :        *    в файл     *    :  :  :
         :        *    Вывод      *        :                             :  :  :
         :         маркера конца           :       *****************     :  :  :
         :       *    группы     *         :                :            :  :  :
         :                                 :                :            :  :  :
         :      *****************          :          *****************  :  :  :
         :               :                 :                             :  :  :
         :               :                 :         *    Ввод       *   :  :  :
         :               :                 :          сопротивления      :  :  :
         :               :                 :        *       R       *    :  :  :
         :               :                 :                             :  :  :
         :               :                 :       *****************     :  :  :
 *****************       :                 :                :            :  :  :
 *               *       :                 :                `∙∙∙∙∙∙∙∙∙∙∙∙'  :  :
 *   Закрытие    *       :                 :                                :  :
 *               *       :         *****************    ┌─                  :  :
 *     файла     *       :         *               *    │                   :  :
 *               *       :         *               *    │ Переопределение   :  :
 *****************       :         * Inc(MeterLine)*∙∙∙∙│ номера            :  :
         :               :         *               *    │ цепочки           :  :
         :               :         *               *    │                   :  :
         :               :         *****************    └─                  :  :
  ***************        :                 :                                :  :
 *               *       :                 :                                :  :
 *   К О Н Е Ц   *       :                 `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'  :
 *               *       :                                                     :
  ***************        `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'



  СХЕМА ПРОЦЕДУРЫ "ViewLine"

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
 *****************          ┌─
 *               *          │  Сброс
 *               *          │  значения
 *   R_Line:=0   *∙∙∙∙∙∙∙∙∙∙│  сопротивления
 *               *          │  цепочки
 *               *          │
 *****************          └─
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                                     :
         *                                                                     :
       *   *                                                                   :
     *       *                                                                 :
   * Достигнут *   Нет                                                         :
 *     конец     *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.                                           :
   *  строки   *                   :                                           :
     *       *                     :                                           :
       *   *                       :                                           :
         *                   *****************    ┌─                           :
         : Да                                     │                            :
         :                  *               *     │ Ввод                       :
   *****************               R         ∙∙∙∙∙│                            :
                           *               *      │ сопротивления              :
  * Пропуск конца *                               │                            :
                          *****************       └─                           :
 * строки в файле*                 :                                           :
                                   :                                           :
*****************          *****************      ┌─                           :
         :                 *               *      │  Набор                     :
         :                 *   R_Line:=    *      │  значения                  :
         *                 *               *∙∙∙∙∙∙│  сопротивления             :
       *   *               *   R_Line+R    *      │  цепочки                   :
     *       *             *               *      │                            :
   *           *   Да      *****************      └─                           :
 *   R_Line<>0   *∙∙∙∙.            :                                           :
   *           *      :            :                                           :
     *       *        :            *                                           :
       *   *          :          *   *                                         :
         *            :        *       *                                       :
         : Нет        :      *           *   Да                                :
         :            :    *      R<>0     *∙∙∙∙∙∙.                            :
         :            :      *           *        :                            :
         :            :        *       *          :                            :
         :            :          *   *      *****************  ┌─              :
         :            :            *                           │               :
         :            :            : Нет   *               *   │ Вывод         :
         :      *****************  :              R         ∙∙∙│               :
         :                         :      *               *    │ сопротивления :
         :     *    Вывод      *   :                           │               :
         :      сопротивления      :     *****************     └─              :
         :    *    цепочки    *    :              :                            :
         :                         `∙∙∙∙∙∙.∙∙∙<∙∙∙'                            :
         :   *****************            :                                    :
         :            :                   `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
         :            :
         `∙∙∙∙∙∙∙∙∙∙∙∙'
               :
               :
        ***************
       *               *
       *   К О Н Е Ц   *
       *               *
        ***************



  СХЕМА ПРОЦЕДУРЫ "ViewData"

      ***************
     *               *
     *    П У С К    *
     *               *
      ***************
             :
             :
     *****************          ┌─
     *    ClrScr     *          │ Очистка экрана
     *   Reset(F)    *          │ Открытие файла для чтения
     * MeterGroup:=0 *∙∙∙∙∙∙∙∙∙∙│ Сброс счетчика групп
     *  R_Scheme:=0  *          │ Обнуление сопротивления схемы
     *               *          │
     *****************          └─
             :
             :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
             :                                                                 :
             *                                                                 :
           *   *                                                               :
         *       *                                                             :
  Да   * Достигнут *   Нет                                                     :
.∙∙∙∙*     конец     *∙∙∙∙∙∙∙∙.                                                :
:      *   файла   *          :                                                :
:        *       *            :                                                :
:          *   *      *****************   ┌─                                   :
:            *        *               *   │ Подсчет групп                      :
:                     *Inc(MeterGroup)*   │                                    :
:                     *               *∙∙∙│                                    :
:                     * Ro_Group:=0   *   │ Обнуление значения                 :
:                     *               *   │ проводимости группы                :
:                     *****************   └─                                   :
:                             :                                                :
:                             :                                                :
:                             :                                                :
:                       *****************                                      :
:                                                                              :
:                      *    Вывод      *                                       :
:                           номера                                             :
:                     *     группы    *                                        :
:                                                                              :
:                    *****************                                         :
:                             :                                                :
:                             :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.    :
:                             :                                           :    :
:                             :                                           :    :
:                     *****************   ┌─                              :    :
:                     * *           * *   │ Просмотр и                    :    :
:                     * *           * *   │ подсчет                       :    :
:                     * * ViewLine  * *∙∙∙│ сопротивления                 :    :
:                     * *           * *   │ цепочки                       :    :
:                     * *           * *   │                               :    :
:                     *****************   └─                              :    :
:                             :                                           :    :
:                             :                                           :    :
:                             *                                           :    :
:                           *   *                                         :    :
:                         *       *                                       :    :
:                       *           *  Да                                 :    :
:                     *   R_Line<>0   *∙∙∙∙∙∙.                            :    :
:                       *           *        :                            :    :
:                         *       *          :                            :    :
:                           *   *    *****************   ┌─               :    :
:                             *      *               *   │ Подсчет        :    :
:                             : Нет  *   Ro_Group:=  *   │                :    :
:                             :      *   Ro_Group+   *∙∙∙│ проводимости   :    :
:                             :      *   +1/R_Line   *   │                :    :
:                             :      *               *   │ группы         :    :
:                             :      *****************   └─               :    :
:                             *              :                            :    :
:                           *   *            `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'    :
:                         *       *                                            :
:                  Нет  *           *   Да                                     :
:                .∙∙∙∙*  Ro_Group<>0  *∙∙∙∙∙∙∙∙.                               :
:                :      *           *          :                               :
:                :        *       *            :                               :
:                :          *   *      *****************   ┌─                  :
:                :            *        *   R_Group:=   *   │ Вычисление        :
:                :                     *   1/Ro_Group; *   │ сопротивления     :
:          *****************           *   R_Scheme:=  *∙∙∙│ группы            :
:           Данная группа              *   R_Scheme+   *   │ и                 :
:         *  не содержит  *            *   R_Group     *   │ схемы             :
:             элементов                *****************   └─                  :
:        *      R=0      *                     :                               :
:                                              :                               :
:       *****************                *****************                     :
:                :                                                             :
:                :                      * Cопротивление *                      :
:                :                                                             :
:                :                     *     группы    *                       :
:                :                                                             :
:                :                    *****************                        :
:                :                             :                               :
:                :                             :                               :
:                `∙∙∙∙∙∙∙∙∙∙∙∙∙.∙∙∙∙∙∙∙<∙∙∙∙∙∙∙'                               :
:                              :                                               :
:                              `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
:
`∙∙∙∙∙∙∙∙∙∙∙∙∙.
              :
        *****************

       * Cопротивление *

      *     схемы     *

     *****************
              :
              :
              :
      *****************
      *               *
      *               *
      *    Close(F)   *
      *               *
      *               *
      *****************
              :
              :
       ***************
      *               *
      *   К О Н Е Ц   *
      *               *
       ***************



  СХЕМА ПРОЦЕДУРЫ "Stop"

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
   *****************                 ┌─
                                     │
  *  "Нажмите     *                  │ Вывод приглашения
                   ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙│
 *    клавишу"   *                   │ нажать клавишу
                                     │
*****************                    └─
         :
         :
   *****************                 ┌─
                                     │
  *               *                  │ Остановка программы
    Ch:=ReadKey    ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙│
 *               *                   │ до нажатия клавиши
                                     │
*****************                    └─
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************



  СХЕМА ПРОГРАММЫ

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
 *****************          ┌─
 *               *          │  Сброс
 *               *          │
 *  Exit:=FALSE  *∙∙∙∙∙∙∙∙∙∙│  флага
 *               *          │
 *               *          │  "Выход"
 *****************          └─
         :
 *****************          ┌─
 *               *          │
 *  Assign       *          │  Связывание файла
 *               *∙∙∙∙∙∙∙∙∙∙│
 * (F,FileName)  *          │  с файловой переменной
 *               *          │
 *****************          └─
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                      :
         :                                                      :
         :                                                      :
         :                                                      :
         :                                                      :
         *                                                      :
       *   *                                                    :
     *       *                                                  :
   *           *                                                :
 *     Menu      *                                              :
   *           *                                                :
     *       *                                                  :
       *   *                                                    :
         *                                                      :
         :                                                      :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.              :
         :1                  :2                  :255           :
         :                   :                   :              :
         :                   :                   :              :
 *****************   *****************   *****************      :
 *MakeFileData(F)*   *               *   *               *      :
 *               *   *  ViewData(F)  *   *               *      :
 *  ViewData(F)  *   *               *   *   Exit:=TRUE  *      :
 *               *   *     Stop      *   *               *      :
 *     Stop      *   *               *   *               *      :
 *****************   *****************   *****************      :
         :                   :                   :              :
         :∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙'              :
         :                                                      :
         :                                                      :
         :                                                      :
         *                                                      :
       *   *                                                    :
     *       *                                                  :
   *           *   Нет                                          :
 *      Exit     *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************

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